我有一个有几个数据库查询的站点,并且有很多访问者,所以我认为 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); 很快。仅当缓存文件很大时输出缓存文件时速度较慢
编辑 - 我也在另一个站点上使用这个脚本,缓存文件要小得多(非常基本的页面),它可以加快速度。需要大缓存文件,因为它在页面上有很多数据,所以我不能从 40kb 得到它。