PHP和服务器内存


PHP and server memory

我是PHP新手,所以请温柔点。

我正在尝试为一个经常更新的网站创建一个动态填充的页面导航。我想我会使用GLOB_ONLYDIRis_dir之类的东西(我正在寻找的所有页面都将在他们自己的目录中)来生成导航可以构建自己的数组,但是从我读到的对服务器的频繁调用(扫描多达50个目录,在每个访问的页面上创建数组,谁知道有多少站点访问者)可以对服务器征税。

这是真的吗?我希望避免使用XML作为目录,但是调用php是否经常会造成内存消耗(在一个公认已经是内存繁重的站点上-许多动态图形,透明度,javascript动画等),或者它应该不会比通常的php页面生成更消耗内存?

谢谢,~ gyz

这样做可能是构建导航结构的最合理的方法。对每一个请求都要这么做,可能没那么多。

你应该建立某种缓存机制来处理这个问题。这样的:
if (!file_exists($cache_file || filemtime($cache_file) + $cache_lifetime > time()){
     // build your name and save it to the cache_file
}
// output your nav.
$fp = fopen($cache_file,"r");
fpassthru($fp);
$fclose;

当你添加文件时,你想要使缓存无效,只需删除它,它将在下一次请求时自动重新生成。此外,这将过期,并强制重新创建$cache_lifetime秒后创建。

lots of motion graphics, transparencies, javascript animation, etc

上面提到的事情不会对服务器造成消耗,但会对用户的浏览器和计算机造成消耗。有很多网站调用php的次数比你期望的要多。它不会破坏你的服务器,所以不用担心。

但我建议你使用json或xml之类的文件

是的,您应该避免扫描文件系统。实际上,您应该只在发生更改时刷新您的dir列表。如果你想避免使用XML,你可以使用不同的方法,例如序列化嵌套JSON数组保存到文件中。

在内存消耗方面,你说的那些东西(javascript, transparent等)是关于浏览器的消耗,而不是服务器

的问候琼

您可以做的一件事是缓存导航(创建XML或HTML内容本身),并让脚本每24小时更新一次。让你的主页头包含缓存页面。

至于内存使用,你自己说,这是一个内存繁重的网站,所以是的,我认为运行代码,检查50多个目录,每次在你的网站上的页面加载将是一个问题。