安裝
安裝tideways拓展
git clone https://github.com/tideways/php-xhprof-extension.git cd php-profiler-extension phpize ./configure make && make install
在php.ini中加入
extension=tideways_xhprof.so
重新啟動php-fpm
service php-fpm restart
toolkit安裝
go get github.com/tideways/toolkit # 安裝graphviz # macOS brew install graphviz # ubuntu sudo apt-get install -y graphviz
設定別名
alias tk=toolkit
tideways+toolkit
程式碼埋點
在程式入口中加入
if (extension_loaded('tideways_xhprof')) { tideways_xhprof_enable(TIDEWAYS_XHPROF_FLAGS_CPU | TIDEWAYS_XHPROF_FLAGS_MEMORY); } // 你的程式碼 application(); if (extension_loaded('tideways_xhprof')) { $data = tideways_xhprof_disable(); file_put_contents( sprintf('%s/app.xhprof', '/path/to'), json_encode($data) ); }
執行下程式碼,然後就會生成/path/to/app.xphrof
效能分析
tk analyze-xhprof /path/to/app.xphrof
預設效能分析的指標是wt_excl,其他的指標有
1.wt 呼叫時長,包括子函數
2.excl_wt 呼叫時長,不包括子函數
3.cpu CPU呼叫時長,包括子函數
4.excl_cpu CPU呼叫時長,不包括子函數
5.memory 記憶體消耗(位元組),包括子函數
6.excl_memory 記憶體消耗(位元組),不包括子函數
7.io io時長,包括子函數
8.excl_io io時長,不包括子函數
生成效能瓶頸圖
tk generate-xhprof-graphviz /path/to/app.xhprof dot -Tpng callgraph.dot > callgraph.png
顯示的指標有
1.函數名
2.Inc 函數執行時間,包括子函數
3.Excl 函數執行時間,不包括子函數
4.total calls 總呼叫次數
以上就是tideways+toolkit對php程式碼進行效能分析的詳細內容,更多請關注TW511.COM其它相關文章!