亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

叶城县| 锡林郭勒盟| 台州市| 塔城市| 辛集市| 尼木县| 浦东新区| 新昌县| 武宁县| 崇仁县| 明溪县| 通道| 惠来县| 晋江市| 萨迦县| 梁山县| 纳雍县| 苍山县| 隆昌县| 永和县| 河源市| 沈阳市| 尤溪县| 新龙县| 昭苏县| 泽普县| 昌乐县| 桓仁| 新绛县| 犍为县| 太原市| 琼结县| 鞍山市| 平定县| 红桥区| 龙陵县| 淮阳县| 图木舒克市| 绥德县| 西昌市| 乳山市|