如下內容摘抄自 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代碼會有很大益處