通常启用了 xdebug
插件,性能测试输入文件会随同生成,通常是以cachegrind.out.xxxx
文件存在。
该文件能够通过第三方工具来进行代码性能剖析。
但如果本地有多个我的项目 / 网站,所有的 profile 都输入到一个文件中了,这样并不不便前面进行性能剖析。
自定义 profile 文件名称
能够通过配置xdebug.profiler_output_name
参数来设置输入文件名称,局部参数如下:
符号 | 含意 | 配置样例 | 样例文件名 |
---|---|---|---|
%c | 当前工作目录的 crc32 校验值 | cachegrind.out.%c | cachegrind.out.1258863198 |
%p | 以后服务器过程的 pid | cachegrind.out.%p | cachegrind.out.9685 |
%r | 随机数 | cachegrind.out.%r | cachegrind.out.072db0 |
%s | 脚本文件名(注) | cachegrind.out.%s | cachegrind.out._home_httpd_html_test_xdebug_test_php |
%t | Unix 工夫戳(秒) | cachegrind.out.%t | cachegrind.out.1179434742 |
%u | Unix 工夫戳(微秒) | cachegrind.out.%u | cachegrind.out.1179434749_642382 |
%H | $_SERVER[‘HTTP_HOST’] | cachegrind.out.%H | cachegrind.out.localhost |
%R | $_SERVER[‘REQUEST_URI’] | cachegrind.out.%R | cachegrind.out._test_xdebug_test_php_var=1_var2 |
%S | session_id (来自 $_COOKIE 如果设置了的话) | cachegrind.out.%S | cachegrind.out.c70c1ec2375af58f74b390bbdd2a679d |
%% | % 字符 | cachegrind.out.%% | cachegrind.out.%% |
编辑php.ini
配置文件:
xdebug.profiler_output_name = cachegrind.out.%H
而后重启 php server。
在 Mac 下,profile 文件寄存于 /var/tmp/
目录中。
性能剖析
在 Mac 下,有 MacCallGrind 和 qcachegrind 能够应用,不过前者是免费,间接通过 Apple Store 下载,后者是收费。须要手动装置。
装置 graphviz,用来 Call Graph 性能:
$ brew install graphviz
装置 qcachegrind:
$ brew install qcachegrind
装置实现之后,就能够关上 qcachegrind
利用了,图形界面如下:
其余
不过须要留神,开启了 profile
文件输入之后,如果本地我的项目多的话,很容易占用磁盘大面积空间,下图是我半年左右没有清理的状态:
能够应用命令进行清理:
$ sudo rm -fr /private/var/tmp/cachegrind.out.*
参考链接
- 应用 xdebug 对 php 进行 profile 的输入
- php+xdebug+qcachegrind(mac)性能剖析