Loading...

    AD: 猛买 | 快递查询 | Jobsdigg | 很棒的男装店

缓存的效率

可任意转载,但必须在醒目位置以超链接形式标明文章原始出处和作者信息
原文地址:http://www.blogkid.net/archives/874.html

今天尝试着在牛扑的三个页面上用了缓存:tag页面,分类页面以及图书信息页面。中午没吃饭,把它搞了出来。刚刚放上去的时候,缓存之后的页面效率很高,基本上比原来的查询提高了一个数量级。

但是下午出去办了很多事情,晚上和徐老师聊了很久,再回来看牛扑,程序的效率已经让我惨不忍睹。一个简单的图书信息页面都在几十秒才能出来,而且是使用缓存之后──为什么呢? 原因在于缓存的文件太多了。

现在那个缓存目录下,大概有几万个文件。想像一下ZendCache需要在这几万个文件中准确找出那个对应的缓存文件,然后判断它是不是过期了,这中间的开销不亚于从百万级别的数据库中来检索(因为数据库的检索是可以进行优化的)。 现在那里边的文件已经多到我使用rm命令都删除不了了,相当恐怖。

当然,上次PHP之父Rasmus 说,缓存可以有很多层次。其实用ZendCache适合做通用的缓存,在缓存内容比较少的时候效率提升很明显。但是文件数目的增多会使效率急剧下降,所以,控制一个较短的lifetime可以算一个解决的办法了。

另外,牛扑上的图书目录所用的缓存就很稳定。看来这些东西还是应该自己好好去实践一下。通用的缓存架构不一定是提升效率的稻草。

1 Response to “缓存的效率”


  1. 写的不错,

Leave a Reply