我希望有人能帮我理解。如果我正在访问位于地球另一端的网站,PHP会报告大约300毫秒的页面执行时间(通过使用microtime(true)
进行简单的数学运算)。如果我在服务器上本地访问同一个网站,PHP会报告大约20ms的页面执行时间。看起来网络延迟是PHP执行时间的一个因素,这对我来说是令人惊讶的,因为我认为整个页面都是由PHP呈现并返回到apache以立即发送到客户端(因此,脚本执行时间会相同,无论出身如何)。
Apache,PHP5(mod_php),CentOS 5.
我是否假设PHP在某种程度上等待输出在继续执行之前发送到浏览器?我觉得可能会有一些输出缓冲因素,但我真的不确定。我通过php.ini启用了输出缓冲。
我的问题是:发生了什么,以及我的网络延迟如何影响PHP的执行?
我希望这是提出这类问题的适当场所。我试着搜索SO&谷歌,但没有运气找到任何相关的东西。
编辑我不是在讨论衡量网页从服务器传输到客户端所需的时间。我直接谈论PHP如何计算当我从本地机器下载页面的HTML源时它执行得更快。相同的服务器,相同的页面,一致的结果我在两个位置使用curl http://example.com | grep milliseconds
来查看服务器报告的PHP执行时间。
答案 0 :(得分:1)
两台不同的机器,甚至两台具有不同服务器软件或不同配置的完全相同的机器都会对您的执行时间产生严重影响。什么都可能发生。可能会发生堵塞(之前发生在我身上),突然页面需要10秒才能加载。之后,重新启动浏览器,清空缓存,再试一次,它几乎是即时的。
所有这些华夫饼干,我想提到的是,它与连接速度无关,或者至少几乎没有。