xhprof安裝和使用方法


不對xhprof做介紹,我相信能搜到這篇文章的你一定已經知道了xhprof是干什么的。

 

安裝很簡單,先去github上把源代碼拉下來,地址在這兒:

git@github.com:facebook/xhprof.git

xhprof文件夾下面應該有這幾個文件夾:examples, extension, xhprof_html, xhprof_lib,分別是例子,插件,文檔和統計頁面,庫。另外,在xhprof_html里面有個docs文件夾,里面的index.html是很好的關於xhprof的文檔,我就是看的這個。

然后按照以下步驟去做:

cd xhprof/extension
which php-config  #記錄下php-config的路徑,接下來要用。
phpize
./configure --with-php-config=/usr/bin/php-config #此處的地址就是上面你記錄下來php-config的地址
make
sudo make install

編譯完成安裝好之后,還要去修改一下php.ini,在php.ini的最后添加這樣一些內容

[xhprof]
extension=xhprof.so
;下面的這個地址是用來保存測量記錄的目錄,在頁面輸出測量得到的數據的時候,它會自動到這兒來找輸出的文件。
xhprof.output_dir=/tmp

然后重啟apache使得php.ini生效

sudo apachectl restart

這時候就xhprof就算是裝好了。使用起來很簡單,在你需要測試的代碼的首尾各添加xhprof_enable()和xhprof_disable()就好了。舉個例子:

#!/usr/bin/php

xhprof_enable();
foo();

$data = xhprof_disable(); var_dump($data); //此時$data里面保存的數據就是foo()這個函數的運行開銷等的數據。 function foo(){ phpinfo(); }

如果需要在頁面顯示,那也很簡單,xhprof下面有一個xhprof_html的文件夾,你需要讓這個文件夾能夠讓你的瀏覽器通過http服務訪問到。我就放在/var/www里面了,這樣的話我訪問它的路徑就是:

http://localhost/xhprof_html/index.php

當然,對應的測試頁面也需要修改:

#!/usr/bin/php

xhprof_enable(XHPROF_FLAGS_CPU+XHPROF_FLAGS_MEMORY);//加上這個參數可以使得xhprof顯示cpu和內存相關的數據。

foo();//把要測量的函數用xhprof_enable和xhprof_disable包圍起來。

$data = xhprof_disable();

//得到統計數據之后,以下的工作就是為頁面顯示做准備。
$xhprof_root = "/var/www/xhprof";//這里填寫的就是你的xhprof的路徑

include_once $xhprof_root."/xhprof_lib/utils/xhprof_lib.php";
include_once $xhprof_root."/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHprofRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "test");//第二個參數在接下來的地方作為命名空間一樣的概念來使用

/**************************
  訪問<xhprof-ui-address>/index.php?run=$run_id&source=test就能夠看到一個統計列表了。
  
  1. <xhprof-ui-address>其實就是http://localhost/xhprof_html
  
  2. 你會在/tmp里面找到一個類似這樣的文件:50f7ed6689205.test.xhprof,第一個部分就是run_id,當然,程序里面的$run_id跟這個是一樣的。
     第二個部分的test就是你在save_run里面的第二個參數,第三個部分就是文件后綴不用去管

  3. 例子中,要看到統計列表需要訪問的地址就是http://localhost/xhpro_html/index.php?run=50f7ed6689205&source=test
**************************/

function foo(){
    phpinfo();
}

 

好了,xhprof的安裝和使用的介紹就到此為止了。

(EOF)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM