php運行狀態報告工具:php-timer

jopen 9年前發布 | 12K 次閱讀 php-timer PHP開發

最近寫了一個異步mysql客戶端的封裝,想與傳統的串行方式做下性能對比。包括運行時間、內存使用情況等信息。在github和packagist上搜索并沒有找到自己想要的,xhprof又太大了,結果也太復雜,不符合現在的需要。所以決定自己寫一個package,來實現對php腳本運行時間和內存使用情況的監控,并生成報告。

示例代碼: 

requiredirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR .'vendor'. DIRECTORY_SEPARATOR .'autoload.php';

//初始化,設置內存單位
$timer=new\Jenner\Timer(\Jenner\Timer::UNIT_KB);
//記錄a狀態
$timer->mark('a');
sleep(2);
//記錄b狀態
$timer->mark('b');
sleep(3);
//記錄c狀態
$timer->mark('c');
sleep(4);
//記錄d狀態
$timer->mark('d');
//打印總體報告(不包含差值)
$timer->printReport();
//獲取總體報告,返回數組
$report=$timer->getReport();
//獲取一個mark的報告
$a_report=$timer->getReport('a');
print_r($a_report);
//打印a狀態和b狀態的差異信息,包含運行時間、使用內存等
$timer->printDiffReportByStartAndEnd('a','b');
//獲取a狀態和b狀態的差異報告
$ab_diff_report=$timer->getDiffReportByStartAndEnd('a','b');
//打印第一個mark和最后一個mark之間的差異信息
$timer->printDiffReport();
//獲取第一個mark和最后一個mark之間的差異信息
$diff_report=$timer->getDiffReport();

輸出結果:  

 ------------------------------------------
mark:a
time:1437535424.9998s
memory_real:1280KB
memory_emalloc:833.046875KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
------------------------------------------
mark:b
time:1437535427s
memory_real:1280KB
memory_emalloc:834.2265625KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
------------------------------------------
mark:c
time:1437535430.0002s
memory_real:1280KB
memory_emalloc:835.1875KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
------------------------------------------
mark:d
time:1437535434.0004s
memory_real:1280KB
memory_emalloc:836.1484375KB
memory_peak_real:1280KB
memory_peak_emalloc:843.2890625KB
Array
(
    [time] => 1437535424.9998
    [memory_real] => 1310720
    [memory_emalloc] => 853040
    [memory_peak_real] => 1310720
    [memory_peak_emalloc] => 863528
)
------------------------------------------
mark:[diff] start_mark:a end_mark:b
time:2.0001850128174s
memory_real:0KB
memory_emalloc:1.1796875KB
memory_peak_real:0KB
memory_peak_emalloc:0KB
------------------------------------------
mark:[totaldiff]
time:9.0006000995636s
memory_real:0KB
memory_emalloc:3.1015625KB
memory_peak_real:0KB
memory_peak_emalloc:0KB

項目主頁:http://www.baiduhome.net/lib/view/home/1437969396019

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!