PHP xdebug 分析程式碼效能瓶頸
通常啟用了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.*
登入後複製
###
以上是關於PHP+xdebug分析程式碼效能瓶頸的詳細內容。更多資訊請關注PHP中文網其他相關文章!