php输出性能影响



我正在进行页面缓存,我正在努力提高服务器响应时间,当我通过php获取缓存的页面内容时,无论出于何种原因,都需要大约800毫秒才能将其输出到浏览器。

require_once(PATH_TO_CACHED_FILE);

当我复制完全相同的内容并将其放入.html文件时,我在浏览器中大约需要250毫秒才能获得相同的内容。当我将上述CCD_ 1切换到这个=>

echo 'a';

所以,考虑到所有这些——我认为这可能与缓冲区大小有关,因为缓冲区越大,输出它所需的时间就越长(?正确的我的意思是——这是一个巨大的区别——既然两个文件做的几乎是一样的事情(抓取内容/推送到浏览器(,我们该怎么做才能或多或少地将通过php输出内容与简单地加载html相匹配?谢谢

顺便说一句:我还测试了将输出复制到.php文件(所以它只是呼应了缓存的HTML,这个文件中没有进行任何计算(,但它仍然需要大约800毫秒——如何简单地将扩展名从.php更改为.HTML就可以产生500毫秒的差异?

btw2:不确定它是否重要,php在nginx 上

由于两个文件几乎都做相同的事情(抓取内容/推送到浏览器(,为了或多或少地匹配通过php输出内容和简单地加载html,我们可以做什么?

没有,请参阅下文。

如何简单地将扩展名从.php更改为.html就可以产生500毫秒的差异?

与简单的HTML访问相比,PHP/PHP-FPM脚本引擎相当繁重,因为它必须(可能,根据当前状态(派生一个工作进程,进行必要的引导,加载模块(如果不是(,解析脚本,甚至在require使用的简单HTML中,它也必须解析脚本并查找要处理的<?php标记。

通过直接访问HTML,不需要使用PHP引擎。如果您只是直接链接/访问HTML文件,则不会发生上述情况。

除此之外,如果在PHP端使用zlib,缓冲也可能是一个问题。

如果您必须坚持使用一些父PHP代码来提供缓存HTML文件,那么尝试使用readfile代替require可能是有意义的,因为前者不需要解析PHP标记的文件内容。

否则,如果您已经拥有完整的HTML文件(如在完整的页面缓存中(,那么最好的方法就是完全避免对它们进行PHP调用。这可以通过使用NGINX(或您选择的Web服务器(重写来实现,根据HTML缓存文件的存在将请求直接路由到HTML缓存文件(例如,对于NGINX,这可以使用try_files指令来实现(。

最新更新