XHProf 的安装配置与使用分析

目录

简介

XHProf,中文名为层次式性能分析器,是一个分层PHP性能分析工具。 它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。 一个函数的开销,可细分成调用者和被调用者的开销。

安装配置

以 XHProf for PHP 7 为例,安装步骤如下:

1
2
3
4
5
6
7
8
9
git clone git@github.com:Yaoguais/phpng-xhprof.git ./xhprof
cd xhprof
/usr/local/Cellar/php71/7.1.5_17/bin/phpize
./configure --with-php-config=/usr/local/Cellar/php71/7.1.5_17/bin/php-config
make clean && make && make test && sudo make install

安装完毕后会显示扩展存放的路径如:

1
/usr/local/Cellar/php71/7.1.5_17/lib/php/extensions/no-debug-non-zts-20160303/phpng_xhprof.so

打开 php.ini,并在文件中加入代码如下:

1
2
3
[xhprof]
extension = /usr/local/Cellar/php71/7.1.5_17/lib/php/extensions/no-debug-non-zts-20160303/phpng_xhprof.so
xhprof.output_dir = /tmp/xhprof

编辑 php.ini 文件完毕后,重启 PHP-FPM 或 Apache(php7_module),通过 phpinfo() 函数或命令 php -m | grep xhprof 查看是否安装成功。

XHProf 函数与常量

函数

  • xhprof_enable — 启动 xhprof 性能分析器
  • xhprof_disable — 停止 xhprof 分析器
  • xhprof_sample_enable — 以采样模式启动 XHProf 性能分析
  • xhprof_sample_disable — 停止 xhprof 性能采样分析器

常量

  • XHPROF_FLAGS_NO_BUILTINS (integer):使得跳过所有内置(内部)函数。
  • XHPROF_FLAGS_CPU (integer):使输出的性能数据中添加 CPU 数据。
  • XHPROF_FLAGS_MEMORY (integer):使输出的性能数据中添加内存数据

XHProf 范例