PHP代码的性能测试

14 php performance

我测试PHP代码性能的最佳方法是什么?

Pat*_*ick 12

您应该考虑使用ab(apache基准测试工具)运行大量查询,使用xhprof来分析/分析代码.在我看来,这些只是基础知识,但效果很好.


Tha*_*ama 7

您可以使用microtime()来破坏代码的执行时间.这是一个基本的代码片段:

$start_timestamp = microtime(true);
...
---your Code---
...
$end_timestamp = microtime(true);
$duration = $end_timestamp - $start_timestamp;
error_log("Execution took ".$duration." milliseconds.");
Run Code Online (Sandbox Code Playgroud)

  • 我总是得到这样的负数.我的程序比时间本身更快吗? (3认同)
  • time()返回秒,而不是毫秒.我相信你正在寻找类似[microtime()]的东西(http://ca3.php.net/manual/en/function.microtime.php) (2认同)

sym*_*ean 7

xDEBUG(参见Neil Aitken的回答)对于识别PHP代码中的不良性能问题很有用 - 但它只能在非常有控制和限制条件下使用 - 尤其是很难看出concurency对性能的影响.

正如帕特里克·马里建议的那样,你可以使用ab - 如果你试图测量的事务跨度超过页面,它不是一种可行的方法(例如登录应用程序并创建会话,将随机产品添加到购物篮,重复添加随机产品N倍...).

AFAIK没有基于PHP的录制/脚本交互解决方案 - 但有Perl + WWW:Mechanize + HTTP:recorder.或者,如果你非常富有,你可以买HPs loadrunner产品.

但是很难实现真正代表应用程序使用方式的测试 - 应用程序的性能(至少与数据相关的部分)会随着时间的推移而变化 - 因此您需要在代码中构建适当的性能指标.

...即便如此,PHP生成HTML页面所花费的时间只是一个页面在浏览器上呈现所需时间的故事的一小部分.

HTH

C.