中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中的層次性能分析器的介紹、安裝與使用

發布時間:2021-09-13 18:17:10 來源:億速云 閱讀:132 作者:chen 欄目:大數據

這篇文章主要介紹“PHP中的層次性能分析器的介紹、安裝與使用”,在日常操作中,相信很多人在PHP中的層次性能分析器的介紹、安裝與使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP中的層次性能分析器的介紹、安裝與使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

簡單學習PHP中的層次性能分析器

在 PHP 中,我們需要進行調試的時候,一般都會使用 memory_get_usage() 看下內存的使用情況。但如果想看當前的腳本 CPU 的占用情況就沒有什么現成的函數了。不過,PHP 也為我們提供了一個擴展:XHProf ,這是由 FaceBook 開源的一個擴展,它可以幫我們看到當前腳本運行時的一些性能情況。

 

什么是 XHProf

XHProf 是一個輕量級的分層性能測量分析器。在數據收集階段,它跟蹤調用次數與測量數據,展示程序動態調用的弧線圖。它在報告、后期處理階段計算了獨占的性能度量,例如運行經過的時間、CPU 計算時間和內存開銷。函數性能報告可以由調用者和被調用者終止。在數據搜集階段 XHProf 通過調用圖的循環來檢測遞歸函數,通過賦予唯一的深度名稱來避免遞歸調用的循環。

簡單來說,XHProf 就是能為我們收集很多程序運行時的系統狀態,并且它自帶一套在線圖表工具,能夠為我們提供詳盡的圖表信息。

 

安裝

直接在 PECL 下載安裝擴展包即可。和其它的擴展安裝并沒有什么兩樣,這個擴展一直在更新維護狀態中,所以對于 PHP7 版本都是完美支持的。

 

命令行使用

xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

//xhprof_enable( XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

//xhprof_enable( XHPROF_FLAGS_MEMORY);

//xhprof_enable();

for ($i = 0; $i <= 1000; $i++) {
    $a = $i * $i;
}

function test_application(){
    for ($i = 0; $i <= 1000; $i++) {
            $a = $i * $i;
    }
}

test_application();


$xhprof_data = xhprof_disable();

print_r($xhprof_data);

// Array
// (
//     [main()==>test_application] => Array
//         (
//             [ct] => 1
//             [wt] => 16
//             [cpu] => 21
//             [mu] => 848
//             [pmu] => 0
//         )

//     [main()] => Array
//         (
//             [ct] => 1
//             [wt] => 115
//             [cpu] => 115
//             [mu] => 1416
//             [pmu] => 0
//         )

// )
 

使用 xhprof_enable() 啟用分析器,它的參數是幾個常量,大概的意思就是顯示 CPU 信息、內存信息等,如果沒有參數的話則只會返回 ct 、 wt 這兩個參數。

調用 xhprof_disable() 結束分析并返回分析結果,返回值的內容包括 main 主函數的運行情況,也就是我們當前頁面測試代碼的情況。還有調用的函數 test_application() 函數的性能情況。具體內容為:

  • ct:調用次數
  • wt:等待運行時長,毫秒
  • cpu:cpu 運行時長,毫秒
  • mu:內存使用,字節
  • pmu:內存使用峰值

沒錯,就是這么簡單的內容。通過兩個函數的調用我們就能看到當前腳本程序的運行狀態,占用了多少內存、耗費了多少 cpu 時長。當然,更方便的是,它還可以通過 web 頁面顯示更為詳細的信息。

 

web 查看結果報告

首先,我們需要做一些準備工作。一是要安裝一個 graphviz 用于圖形繪制,二是修改 php.ini 文件的結果存放目錄,三是拷貝源碼中的分析器代碼并修改一下我們之前的測試代碼。

yum install graphviz
 

CentOS 系統中我們直接使用 yum 就可以安裝 graphviz 。然后我們在 php.ini 文件中為 xhprof 指定一下輸出目錄。

xhprof.output_dir=/tmp
 

接下來,我們需要將源碼文件中的 xhporf_html 目錄和 xhporf_lib 目錄拷貝出來放到項目文件下。然后修改代碼來保存性能分析的結果。

// ..... 上面的代碼
$xhprof_data = xhprof_disable();

require 'xhprof_lib/utils/xhprof_lib.php';
require 'xhprof_lib/utils/xhprof_runs.php';

$xhprofRuns = new XHProfRuns_Default();
$runId = $xhprofRuns->save_run($xhprof_data, 'xhprof_test');

echo 'http://192.168.56.102/index.php?run=' . $runId . '&source=xhprof_test';

 

然后我們需要在 xhporf_html 搭起服務器,在這里我就用簡單的 php -S 命令運行起來。

cd xhprof_html/
php -S 0.0.0.0:80
 

最后用上面輸出的鏈接來訪問這個頁面,就可以看到相關的信息了。

PHP中的層次性能分析器的介紹、安裝與使用

到此,關于“PHP中的層次性能分析器的介紹、安裝與使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

乐陵市| 天祝| 洛川县| 荔波县| 新河县| 湾仔区| 桦川县| 根河市| 高邮市| 葫芦岛市| 芮城县| 桐梓县| 海阳市| 军事| 雷波县| 长子县| 南昌市| 车致| 双辽市| 绍兴市| 秭归县| 梧州市| 山阳县| 印江| 库车县| 安新县| 尉氏县| 江山市| 界首市| 介休市| 嫩江县| 沙田区| 汨罗市| 准格尔旗| 岳普湖县| 通辽市| 汉阴县| 太仓市| 石渠县| 平山县| 内乡县|