不對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)