分析 PHP 脚本的最简单方法是什么?
我很想在上面添加一些东西,向我展示所有函数调用的转储以及它们花费了多长时间,但我也可以在特定函数周围放置一些东西。
我尝试使用microtime功能:
$then = microtime(); myFunc(); $now = microtime(); echo sprintf("Elapsed: %f", $now-$then);
但这有时会给我带来负面的结果。另外,在我的代码中到处乱写是很麻烦的。
PECL APD扩展的使用如下:
<?php apd_set_pprof_trace(); //rest of the script ?>
之后,使用 . 解析生成的文件pprofp。
pprofp
示例输出:
Trace for /home/dan/testapd.php Total Elapsed Time = 0.00 Total System Time = 0.00 Total User Time = 0.00 Real User System secs/ cumm %Time (excl/cumm) (excl/cumm) (excl/cumm) Calls call s/call Memory Usage Name -------------------------------------------------------------------------------------- 100.0 0.00 0.00 0.00 0.00 0.00 0.00 1 0.0000 0.0009 0 main 56.9 0.00 0.00 0.00 0.00 0.00 0.00 1 0.0005 0.0005 0 apd_set_pprof_trace 28.0 0.00 0.00 0.00 0.00 0.00 0.00 10 0.0000 0.0000 0 preg_replace 14.3 0.00 0.00 0.00 0.00 0.00 0.00 10 0.0000 0.0000 0 str_replace
警告:APD 的最新版本是 2004 年发布的,扩展 不再维护,并且存在各种兼容性问题(请参阅评论)。