PHP代码';s性能测试

PHP代码';s性能测试,php,performance,Php,Performance,测试PHP代码性能的最佳方法是什么?您可以使用microtime()来测量代码的执行时间。 下面是一个基本的代码片段: $start_timestamp = microtime(true); ... ---your Code--- ... $end_timestamp = microtime(true); $duration = $end_timestamp - $start_timestamp; error_log("Execution took ".$duration." milliseco

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

您可以使用microtime()来测量代码的执行时间。 下面是一个基本的代码片段:

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

您应该考虑使用大量的查询并对代码进行分析/分析。在我看来,这些只是基础,但效果很好。

内置了一个探查器,一旦配置好,它将转储一些文件,您可以使用kCacheGrind或WinCacheGrind之类的程序读取这些文件


这将允许您查看所有函数调用、平均和累积调用时间以及脚本执行总时间。对于查找代码中的瓶颈非常有用。

< P>如果要测试代码的特定部分,请考虑使用PHPPEAR库中的包。

$timer = new Benchmark_Timer();
$timer->start();
// Code to test here
$timer->stop();
$timer->display();
xDEBUG(参见Neil Aitken的回答)对于识别PHP代码中的低性能问题非常有用——但它只能在非常受控和限制性的条件下使用——尤其是很难看到一致性对性能的影响

正如Patrick MARIE所建议的,如果您试图测量的事务跨越多个页面(例如,登录到应用程序并创建会话,将随机产品添加到篮子中,重复添加随机产品N次),则可以使用ab-这不是一种可行的方法

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

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

…即使如此,PHP生成HTML页面所需的时间只是页面在浏览器上呈现所需时间的一小部分


C.

< P>作为一个老问题的新观点,考虑使用一个商业工具来帮助分析。我个人只是用它们免费或以名义价格获取一小部分数据样本。不过,我确实充分利用了他们功能齐全的产品试用版。

您也可以使用(高级PHP调试器)

让它工作起来很容易


关于如何编译APD并使用它进行评测,有一个很好的教程:

说得很好,很难衡量应用程序在重载下的性能。您可以使用Selenium而不是Mechanize来自动化浏览器,但据我所知,它不是为负载测试而设计的。为什么要提到hp loadrunner而不是apache jmeter?请指定是否要测试PHP代码块、使用数据库的代码块或负载下站点的整体性能。这三个用例都有自己的工具,这反映在这里的答案中。我相信你在寻找这样的东西,我总是得到负数。我的程序比时间本身快吗?@Raymond:你可能已经证明了粒子运动速度比光速快的可能性:)为了使这项工作正常进行(并且不会像@Ray那样得到负数),即
microtime(true)
,因此它返回一个浮点而不是字符串。