php 层次式性能分析器
php官网xhprof介绍
pecl_xhprof
目前xhprof有着比较新的更新,pecl显示是原来版本fork后的版本。不过一致到8都提供了支持。所以可以在开发测试环境使用来分析代码的运行状况
install
如果不能直接下载或许需要 sudo pecl install xhprof ,或者先进行 pecl 的更新
之后将extension=xhprof.so
加入对应的 php.ini
(注意区分fpm和cli的ini配置是否相同)
接着可以配合已经浅封装的php代码进行分析
https://github.com/phacility/xhprof
其中如果是web项目可以进行双入口控制,在另一个入口中引入原来的入口。这样对原有代码污染。
如新的 index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?php xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
require __DIR__ . '/../ifang_php_forgelogin/phpapps/forgelogin/src/public/index.php';
$xhprof_data = xhprof_disable();
$XHPROF_ROOT = __DIR__; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");
$str = "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing\n";
file_put_contents(__DIR__.'/tmp.log',$str);
|
图形化显示依赖graphviz
安装graphviz 1 2
| apt update apt install graphviz
|