溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP + xdebug分析代碼性能瓶頸的案例

發(fā)布時間:2021-02-19 14:57:58 來源:億速云 閱讀:209 作者:小新 欄目:編程語言

小編給大家分享一下PHP + xdebug分析代碼性能瓶頸的案例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

PHP + xdebug 分析代碼性能瓶頸

通常啟用了xdebug插件,性能測試輸出文件會伴隨生成,通常是以cachegrind.out.xxxx 文件存在。

該文件可以通過第三方工具來進行代碼性能分析。

但如果本地有多個項目/網(wǎng)站,所有的profile 都輸出到一個文件中了,這樣并不方便后面進行性能分析。

自定義profile 文件名稱

可以通過配置xdebug.profiler_output_name 參數(shù)來設(shè)置輸出文件名稱,部分參數(shù)如下:

符號含義配置樣例樣例文件名
%c當前工作目錄的crc32校驗值cachegrind.out.%ccachegrind.out.1258863198
%p當前服務(wù)器進程的pidcachegrind.out.%pcachegrind.out.9685
%r隨機數(shù)cachegrind.out.%rcachegrind.out.072db0
%s腳本文件名(注)cachegrind.out.%scachegrind.out._home_httpd_html_test_xdebug_test_php
%tUnix時間戳(秒)cachegrind.out.%tcachegrind.out.1179434742
%uUnix時間戳(微秒)cachegrind.out.%ucachegrind.out.1179434749_642382
%H$_SERVER['HTTP_HOST']cachegrind.out.%Hcachegrind.out.localhost
%R$_SERVER['REQUEST_URI']cachegrind.out.%Rcachegrind.out._test_xdebug_test_php_var=1_var2
%Ssession_id (來自$_COOKIE 如果設(shè)置了的話)cachegrind.out.%Scachegrind.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 應(yīng)用了,圖形界面如下:

PHP + xdebug分析代碼性能瓶頸的案例

其他

不過需要注意,開啟了profile文件輸出之后,如果本地項目多的話,很容易占用磁盤大面積空間,下圖是我半年左右沒有清理的狀態(tài):

PHP + xdebug分析代碼性能瓶頸的案例PHP + xdebug分析代碼性能瓶頸的案例

可以使用命令進行清理:

$ sudo rm -fr /private/var/tmp/cachegrind.out.*

看完了這篇文章,相信你對“PHP + xdebug分析代碼性能瓶頸的案例”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI