PHP 的执行时间会根据互联网/连接延迟而变化?



我希望有人能帮我理解一些东西。如果我访问的是地球另一端的网站,PHP会报告大约300毫秒的页面执行时间(通过使用microtime(true)进行简单计算)。如果我在服务器上本地访问同一个网站,PHP会报告大约20ms的页面执行时间。网络延迟似乎是PHP执行时间的一个因素,这让我感到惊讶,因为我认为整个页面都是由PHP渲染的,并返回到apache,然后立即发送到客户端(因此,无论来源如何,脚本执行时间都是相同的)。

Apache、PHP5(mod_php)、CentOS 5。

我是否认为PHP在某种程度上正在等待输出发送到浏览器,然后再继续执行?我有一种感觉,这可能涉及到一些输出缓冲因素,但我真的不确定。我通过php.ini打开了输出缓冲。

我的问题是:发生了什么,我的网络延迟如何影响PHP的执行?

我希望这是问这种问题的合适地方。我试着搜索SO&谷歌,但没有找到任何相关的东西。

编辑我说的不是衡量网页从服务器传输到客户端所需的时间。我直接谈论的是当我从本地机器下载页面的HTML源代码时,PHP是如何计算出它执行得更快的。相同的服务器,相同的页面,一致的结果。我在这两个位置都使用curl http://example.com | grep milliseconds来查看服务器报告的PHP执行时间。

两台不同的机器,甚至两台完全相同的机器,使用不同的服务器软件或不同的配置,都会对执行时间产生巨大影响。任何事情都有可能发生。可能会出现阻塞(我以前也遇到过这种情况),突然页面需要10秒才能加载。之后,你重新启动浏览器,清空缓存,再试一次,几乎是瞬间的。

所以,在这么多废话之后,我想说的是,它与连接速度无关,或者至少几乎无关。

最新更新