tideways+toolkit對php程式碼進行效能分析

2020-07-16 10:05:43
toolkit是tideway官方提供的效能分析的命令列工具。如果你只是本地開發偵錯介面效能,不想安裝xhgui,那麼使用toolkit就足夠了.

安裝

安裝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

e5af2af524e8771bb982624d4dbc4b0.png

預設效能分析的指標是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

ea3c0e00a5744b850840e9eaae2c66f.png

顯示的指標有

1.函數名

2.Inc 函數執行時間,包括子函數

3.Excl 函數執行時間,不包括子函數

4.total calls 總呼叫次數

以上就是tideways+toolkit對php程式碼進行效能分析的詳細內容,更多請關注TW511.COM其它相關文章!