【发布时间】:2010-09-18 05:07:29
【问题描述】:
我有一个站点,有几个数据库查询和很多访问者,所以我想 id 缓存它。
这是在 php 中,所以我使用 ob_start() 等来获取内容并保存文件。这很快。
需要 0.05 秒。 (我什至不需要缓存)。
问题在于加载文件。
如果我这样做:
readfile($cache_file)
需要 0.43 秒。
如果我这样做了
$c= fread(fopen($cache_file,'r',filesize($cache_file))
(即读取文件,不输出)它比 0.05 快。
如果我那么做
echo $c
再次需要 0.4 秒。
有什么想法可以加快速度吗?似乎基本上一次性回显(或者不管 readfile 这样做)整个缓存比仅仅动态生成页面需要更长的时间。
ps 缓存文件的文件大小约为 41 KB。我已经进行了全面测试,以确保问题在于大文件的加载。做一个 readfile($smallfile);很快。只有当缓存文件很大时输出缓存文件才会慢
edit - 我也在另一个站点上使用这个脚本,缓存文件要小得多(非常基本的页面),它可以加快速度。需要大缓存文件,因为它在页面上有很多数据,所以我无法从 40kb 下载它。
【问题讨论】: