如下内容摘抄自 profiling PHP 脚本php
xdebug 的 profiler 是一个强大的工具,它能分析 PHP 代码,探测瓶颈,或者一般意义上来讲查看哪部分代码运行缓慢以及能够使用速度提高。Xdebug 2 分析器输出一种兼容 cachegrind 文件格式的分析信息。这容许你能使用出色的 KCacheGrind 工具(Linux,KDE)来分析你的 profiling 数据。在 Linux 能够使用你最喜欢的包管理器安装 KCacheGrind。html
在 windows 系统上,有预编译的 QCacheGrind 二进制程序(QCacheGrind 是没有 KDE 绑定的 KCacheGrind)。前端
在 Mac OSX 系统上,这里也有怎样安装 QCacheGrind 的说明。java
Windows 用户能够选择性的使用 WinCacheGrind。它的功能不一样于 KCacheGrind,因此 这个页面的 KCacheGrind 使用文档章节不适用于这个程序。WinCacheGrind 目前不支持 Xdebug 2.3 引入的 cachegrind 文件格式的的文件和函数压缩。git
这也有一种可替代 profile 信息演示的工具叫作 xdebugtoolkit。一款基于 web 前端叫作 Webgrind,和一款基于 java 的工具叫作 XCallGraph。github
若是你不能使用 KDE(或者不想使用 KDE)的 kcachegrind 包,能够用 perl 脚本 "ct_annotate",它能从分析器跟踪文件生成 ASCII 输出。web
这里依旧使用最小化配置chrome
; profiler xdebug.profiler_enable = 0; ; 关闭永久生成profiler xdebug.profiler_enable_trigger = 1; ; 启用 session 触发 profiler xdebug.profiler_output_dir = "/data/profiler_dir" ; 输出的目录 zend_extension = "/usr/local/opt/php70-xdebug/xdebug.so"
配置完成以后重启 php-fpm
或者 apache
apache
安装 chrome 扩展 Xdebug helperwindows
在上边设定的文件夹中会生成 profiler 文件
这里我使用 phpstorm 的分析工具来查看
Tools > Analyze Xdebug Profiler Snapshot
选择生成的 输出文件, 能够看到文件的解析信息, 这个对于分析本身写的php代码会有很大益处