windows版本
- 下载xhprof
选择最新的DLL版本,我写的时候最新的DLL版本是 2.3.5,将里面的 php_xhprof.dll 文件复制到php的扩展目录ext中。 - 下载tgz版本,在同一个位置下载最新版本的即可,主要原因是dll版本中缺少 xhprof_html 和 xhprof_lib。
- 进入文档根目录,创建xhprof文件夹,将xhprof_html 和 xhprof_lib复制到xhprof目录中。
- 修改
php.ini
添加以下内容
extension=xhprof
xhprof.output_dir='D:\xampp\htdocs' #此行根据实际情况,可以不配置
- 在根目录下 编写文件 xhprof.php
<?phpxhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY, []);//TODO somethingregister_shutdown_function(function(){$xhprof_data = xhprof_disable();include_once './xhprof/xhprof_lib/utils/xhprof_lib.php';include_once './xhprof/xhprof_lib/utils/xhprof_runs.php';$xhprof_runs = new XHProfRuns_Default();$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof");});
- 在
php.ini
中添加
auto_prepend_file = 'xhprof.php'
或者在nginx中添加
fastcgi_param PHP_VALUE "auto_prepend_file=xhprof.php";
xhprof的接口已经各个参数意义请查看xhprof文档
这样配置完成后,后续的所有调用都会自动进行分析,不侵入代码。
需要在某个文件中进行性能分析时,可以复用上面的代码,将代码写入上面代码的todo something出即可
- 打开本地文件 http://localhost/xhprof_html 可以看到多个分析文件,点击任意一个即可查看分析报告,点击 按钮 View Full Callgraph 可将结果生成图片,更方便查看,不过需要安装graphviz
- 安装graphviz,点击下载 graphviz-9.0.0 (64-bit) EXE installer,按照提示下一步进行安装
在过程中,注意勾选添加路径到环境变量中,为所有用户 - 在cmd中运行
dot --version
,如果正确安装,可输出graphvi版本号
Linux版本
和windows大差不差,详情后续补充