2

我希望有人可以帮助我理解一些事情。如果我正在访问位于地球另一端的网站,PHP 会报告大约 300 毫秒的页面执行时间(通过使用 进行简单的数学运算microtime(true))。如果我在服务器上本地访问同一个网站,PHP 会报告大约 20 毫秒的页面执行时间。似乎网络延迟是 PHP 执行时间的一个因素,这让我感到惊讶,因为我认为整个页面都是由 PHP 渲染并返回到 apache 以立即发送给客户端(因此,脚本执行时间将是相同的,不分产地)。

阿帕奇、PHP5 (mod_php)、CentOS 5。

我是否假设 PHP 在继续执行之前以某种方式等待输出发送到浏览器?我感觉这可能涉及一些输出缓冲因素,但我真的不确定。我通过 php.ini 打开了输出缓冲。

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

我希望这是提出此类问题的合适场所。我尝试搜索 SO & google,但没有找到任何相关的东西。

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

4

1 回答 1

0

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

因此,在所有华夫饼之后,我只想提到的是,它与连接速度无关,或者至少几乎没有。

于 2012-08-26T05:28:20.560 回答