我正在运行由PHP支持的Amazon EC2上的API服务器,并试图通过减less响应时间来优化性能。 目前,我正在testingPHP代码的性能,通过在请求开始时获得毫秒时间,然后在结束脚本之前在请求结束时获取毫秒数。 在实现memcache和其他一些技巧后,我得到了大部分的请求,在我的PHP代码中报告了10-20ms的执行时间。 但是,当我查看Chrome开发人员工具中的networking请求时,仍然看到打击我的PHP脚本的请求显示为:
Sending 0ms Waiting 145ms Receiving 1ms
这与静态文件的请求相比,通常更符合以下方面:
Sending 0ms Waiting 15ms Receiving 1ms
所以我所知道的是,当我运行我的PHP脚本并在脚本中testing执行时间时,只需要10-20毫秒来执行我的脚本。 在这一点上,我已经注意到让我的PHP代码运行得非常快,但我试图弄清楚如何使得脚本执行之外的其他stream程更快。
所以我的问题是如何确定额外的120ms来自哪里,因为它超出了我自己的代码的stream程? Apachebuild立一个PHP过程花费了多less时间? PHP解释器parsingPHP文件花费的时间是多less? PHP过程花费的时间是否将脚本的响应传递给Apache? 如何计算出120ms的额外时间是如何分配的?
那么,你有困难的,不是很难,也很容易做到这一点。
艰难的路
使用microtime()手动分析您的代码,以查看花费最多的时间。 容易实施一个小项目,但真的很笨重。
不太好的方法
设置一个PHPdebugging器为你做这个。 Xdebug可能是最好的,但有很多select。
它被设置为一个PHP扩展,以便它会自动为您分析您的代码,并让您知道什么是需要大量的时间。
这很可能仍然需要你花费大量的时间来设置,而且这是非常简单的。
简单的方法
检查出新的遗物 。 您安装一个PHP扩展,并在其服务器上设置一个帐户,它会自动为您分析您的代码。
他们的pro版本相当昂贵,为您提供了大量的数据来弄清楚在PHP脚本上占用的时间。 免费版本为您提供了一个基本的想法。
起初我一直很怀疑,但是我对他们提供的数据水平感到非常满意。
此外,他们还有15天的免费试用版。
*我不隶属于New Relic。