使用 Xdebug 生成 php 的 Profiler

說明

如下內容摘抄自 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 的工具叫作 XCallGraphgithub

若是你不能使用 KDE(或者不想使用 KDE)的 kcachegrind 包,能夠用 perl 腳本 "ct_annotate",它能從分析器跟蹤文件生成 ASCII 輸出。web

配置

1) Xdebug 配置

這裏依舊使用最小化配置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 或者 apacheapache

2) 安裝 xdebug 工具

安裝 chrome 擴展 Xdebug helperwindows

3) 啓用 Xdebug helper 的 profiler 工具

4) 刷新頁面, 查看設定的文件夾

在上邊設定的文件夾中會生成 profiler 文件

5) 使用工具來分析 profiler 文件

這裏我使用 phpstorm 的分析工具來查看

Tools > Analyze Xdebug Profiler Snapshot

選擇生成的 輸出文件, 能夠看到文件的解析信息, 這個對於分析本身寫的php代碼會有很大益處

-w1106

參考文檔

相關文章
相關標籤/搜索