php轻量级性能分析工具 xhprof

windows版本

  1. 下载xhprof
    选择最新的DLL版本,我写的时候最新的DLL版本是 2.3.5,将里面的 php_xhprof.dll 文件复制到php的扩展目录ext中。
  2. 下载tgz版本,在同一个位置下载最新版本的即可,主要原因是dll版本中缺少 xhprof_html 和 xhprof_lib。
  3. 进入文档根目录,创建xhprof文件夹,将xhprof_html 和 xhprof_lib复制到xhprof目录中。
  4. 修改php.ini添加以下内容
extension=xhprof
xhprof.output_dir='D:\xampp\htdocs' #此行根据实际情况,可以不配置
  1. 在根目录下 编写文件 xhprof.php

    xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY, []);

    //TODO something

    register_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");
    });
  1. php.ini中添加
auto_prepend_file = 'xhprof.php'

或者在nginx中添加

fastcgi_param PHP_VALUE "auto_prepend_file=xhprof.php";

xhprof的接口已经各个参数意义请查看xhprof文档

这样配置完成后,后续的所有调用都会自动进行分析,不侵入代码。

需要在某个文件中进行性能分析时,可以复用上面的代码,将代码写入上面代码的todo something出即可

  1. 打开本地文件 http://localhost/xhprof_html 可以看到多个分析文件,点击任意一个即可查看分析报告,点击 按钮 View Full Callgraph 可将结果生成图片,更方便查看,不过需要安装graphviz
  • 安装graphviz,点击下载 graphviz-9.0.0 (64-bit) EXE installer,按照提示下一步进行安装
    在过程中,注意勾选添加路径到环境变量中,为所有用户
  • 在cmd中运行 dot --version,如果正确安装,可输出graphvi版本号

Linux版本

和windows大差不差,详情后续补充

你可能感兴趣的:(php,开发语言,性能优化)