cd xhprof/extension/ phpize ./configure makemake install
然後在/etc/php.ini根據情況加入
extension=xhprof.so
執行
php -m | grep xhprof
#可以看見輸出,說明php擴充安裝成功,然後重啟Apache或php-fpm
可以直接運行從github上clone下來的檔案裡面example目錄下的那個範例
輸出如下
Array ( [main()] => Array ( [ct] => 1 [wt] => 9 )) ---------------Assuming you have set up the http based UI for XHProf at some address, you can view run at http://<xhprof-ui-address>/index.php?run=592567308784c&source=xhprof_foo ---------------
然後複製index.php後面的?run=592567308784c&source=xhprof_foo
存取
xhprof_html/index.php?run=592567308784c&source=xhprof_foo
可看見輸出
#點擊中間的View Full Callgraph 即可看見效能分析圖片
failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。
//解决方案yum install graphviz
例如想測試自己的項目,例如一款框架的性能分析。
複製xhprof_lib/utils/下的兩個檔案
xhprof_lib.php和xhprof_runs.php到入口檔案同級目錄,然後在入口檔案起始位置新增
// start profiling xhprof_enable();
結束位置添加
// stop profiler $xhprof_data = xhprof_disable(); // display raw xhprof data for the profiler run print_r($xhprof_data); include_once "xhprof_lib.php"; include_once "xhprof_runs.php"; // save raw data for this profiler run using default // implementation of iXHProfRuns. $xhprof_runs = new XHProfRuns_Default(); // save the run under a namespace "xhprof_foo" $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); echo "---------------\n". "Assuming you have set up the http based UI for \n". "XHProf at some address, you can view run at \n". "http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n". "---------------\n";
即可得到如上所示的那個url,然後再次去訪問
http://***/xhprof_html/index.php?run=*****&source=xhprof_foo
得到如下所示頁面
##查看圖片圖中紅色的部分為效能比較低,耗時比較長的部分,我們可以根據根據哪些函數被標記為紅色對系統的程式碼進行最佳化補充Function Name:方法名称。 Calls:方法被调用的次数。 Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。 Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒) IWall%:方法执行花费的时间百分比。 Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒) EWall%:方法本身执行花费的时间百分比。 Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒) ICpu%:方法执行花费的CPU时间百分比。 Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒) ECPU%:方法本身执行花费的CPU时间百分比。 Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节) IMemUse%:方法执行占用的内存百分比。 Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节) EMemUse%:方法本身执行占用的内存百分比。 Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节) IPeakMemUse%:Incl.MemUse峰值百分比。 Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节) EPeakMemUse%:Excl.MemUse峰值百分比。
以上是php7下xhprof效能分析工具的安裝與使用的圖文程式碼教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!