xhprof是facebook開源出來的乙個php輕量級的效能分析工具,跟xdebug類似,但效能開銷更低,還可以用在生產環境中,也可以由程式開關來控制是否進行profile。基於瀏覽器的效能分析使用者介面能更容易檢視,或是與同行們分享成果。也能繪製呼叫關係圖。在資料收集階段,它記錄呼叫次數的追蹤和包容性的指標弧在動態callgraph的乙個程式。它獨有的資料計算的報告/後處理階段。在資料收集時,xhprofd通過檢測迴圈來處理遞迴的函式呼叫,並通過給遞迴呼叫中每個深度的呼叫乙個有用的命名來避開死迴圈。
xhprof的輕量級性質和匯聚功能,使得它非常適合用於收集「生產環境」的效能統計資料的統計。
一、編譯安裝xhprof
二、配置 php.ini 檔案
vi vi /usr/local/webserver/php/etc/php.ini 修改php.ini
[xhprof]
extension=xhprof.so
;; directory used by default implementation of the ixhprofruns
; inte***ce (namely, the xhprofruns_default class) for storing
; xhprof runs.
;xhprof.output_dir=
ok 重啟web伺服器。為了更加清晰顯示程式執行、呼叫結構,安裝graphviz。
三、安裝graphviz:
四、應用xhprof
客戶端能很靈活地儲存他們從xhprof執行中得到的xhprof原始資料。使用者介面層的xhprof提供了乙個 ixhprofruns介面(見xhprof_lib/utils/xhprof_runs.php ),客戶端可以利用。這使得客戶端能夠告訴使用者介面層,如何獲取xhprof執行後產生的對應資料。
xhprof的ui 庫自帶的有乙個基於檔案的ixhprofruns介面實現,即「 xhprofruns_default」(見xhprof_lib/utils/xhprof_runs.php)。這個自帶的實現將xhprof執行結果存在ini配置的xhprof.output_dir引數指定的某個目錄下。
一次xhprof執行,必須用乙個命名空間和執行編號來唯一確定。
假設使用ixhprofruns介面的xhprofruns_default這個預設實現方式,如:
//xhprofstart.php 檔案
<?php
$xhprof_debug = false;
$debuguseridarray = array(
123456 => 1,
456152 => 1,
);if (function_exists('xhprof_enable') && !empty($debuguseridarray[$winduid]))
if ($xhprof_debug)
?>
//xhprofend.php 檔案
<?php
if (true == $xhprof_debug)
echo '';
?>
程式中應用:
include /var/www/html/xhprofstart.php
// run program
....
include /var/www/html/xhprofend.php
將profile開關程式放在你所要進行分析的程式部分,就會將執行結果儲存在xhprof.output_dir ini引數指定的特定目錄下。檔案的名稱可能會是23dffaa3a3f66.xhprof_foo類似的檔案; 兩部分分別是執行編號(23dffaa3a3f6)和命名空間(xhprof_foo)。
XHProf效能分析工具
安裝xhprof wget tar zxf xhprof 0.9.2.tgz cd xhprof 0.9.2 拷貝顯示檔案到要測試的 裡 php.ini中新增 extension dir usr local webserver php lib php extensions no debug non ...
PHP效能分析工具xhprof的安裝使用與注意事項
前言 xhprof由facebook開源出來的乙個php效能監控工具,占用資源很少,甚至能夠在生產環境中進行部署。它可以結合graphviz使用,能夠以的形式很直觀的展示 執行耗時。下面主要講一下安裝和使用過程 1 安裝 1 和解壓 wget tar zxvf xhprof 0.9.4.tgz 2 ...
php效能測試工具 xhprof
如果是測壓力有apache的ab 如果要看效能則有xdebug和xhprof.還有linux的strace命令來跟蹤程式的執行時的系統呼叫 apche的併發連線不如ngnix,apche的併發連線數大概在1000左右,ngnix在萬級別了 最近伺服器總是出現掛機的問題,通過監控圖發現系統cpu使用已...