【发布时间】:2015-08-30 11:36:42
【问题描述】:
目前,我的网站采用缓存系统,在该系统中生成新请求的页面,然后动态缓存以供将来更快地执行。总体格式是这样的伪代码:
See if cached page exists.
If cached page exists then
Load cached page
Exit
If cached page does not exist then
Generate page
Save output to cache file
Exit
每个新请求的页面需要 250 到 500 毫秒的加载时间,每个缓存的页面需要 100 到 200 毫秒的加载时间。
我想要做的是在每次手动更新网站时,我想预先缓存页面(我认为它称为缓存启动)。
我的缓存系统是用 PHP 完成的,我想制作一个包装 PHP 脚本,该脚本调用主脚本来生成加载了适当参数的网页。在代码中,这是我的想法:
<?php
//wrapper script to pre-cache 500 pages
for ($sect=1;$sect<500;$sect++){
$_GET['param1']="sectiontocache";
$_GET['sectionno']=$sect;
include "index.php";
}
?>
和 index.php(需要大量内存)根据输入参数输出正确的 HTML。
我觉得如果我这样做,我要么给服务器带来巨大负担,要么收到内存不足错误,因为在每次网站更新时,至少需要缓存 100 到 500 个页面才能提供最佳性能任何客户提出的每个请求。
如果我可以这样做:
<?php
//wrapper script to pre-cache 500 pages
for ($sect=1;$sect<500;$sect++){
$_GET['param1']="sectiontocache";
$_GET['sectionno']=$sect;
include "index.php";
declude "index.php";
}
?>
那我就开心了。
是的,我知道 declude 不是一个有效的关键字,但我想说的是,我想在处理完索引脚本后从索引脚本中释放内存,这样我就不会遇到错误。
我只是想知道我是否应该仍然使用我展示的第一个 php 脚本并祈祷服务器不会崩溃,或者在我的情况下是否有更好的官方方法来预缓存页面。
【问题讨论】:
-
不要自行查看一些现有的服务器缓存选项
-
何必呢? 在那种情况下,第一个访问新更新页面的人必须再等待 200-300 毫秒。他们不会注意到的。有些页面在更新之间不会被访问,所以没有问题。这看起来像是寻找问题的解决方案。
-
我的页面包含 Adsense 代码,我注意到谷歌查看的一件事是页面速度。如果一个页面太慢,它在搜索索引中的位置就会降低,这意味着更少的人会看到它,这反过来意味着较低的展示次数=较低的点击次数=较低的收入。
-
如果你有这方面的证据,你会是第一个
标签: php html caching memory include