1、安裝
<code>wget <span>-c</span> http:<span>//pecl.php.net/get/xhprof-0.9.2.tgz</span> tar <span>-xzvf</span><span>.</span>/xhprof<span>-</span><span>0.9</span><span>.2</span><span>.</span>tgz cp <span>.</span>/xhprof<span>-</span><span>0.9</span><span>.2</span><span>.</span>tgz <span>.</span>/www <span>//xhprof自身带有一个web版的分析页面,放到我的web服务器下面</span> cd <span>.</span>/xhprof<span>-</span><span>0.9</span><span>.2</span>/extension /usr/<span>local</span>/php/bin/phpize <span>.</span>/configure <span>--</span>enable<span>-xhprof</span><span>--</span><span>with</span><span>-php</span><span>-config</span><span>=</span>/usr/<span>local</span>/php/bin/php<span>-config</span> make <span>&&</span> make install</code>
<code>[xhprof] extension=xhprof.so xhprof.output_dir=<span>/data/xhprof</span> /<span>/如果不加存放目录的话,默认是放在/tmp</span>下面 (注意:要有写的权限,直接 <span>777</span> 吧)!</code>
<code>service apache2 restart</code>
<code><span>// 启动xhprof</span> xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 各种牛逼的代码。。。。。。。 <span>// 停止xhprof</span><span>$xhprof_data</span> = xhprof_disable(); <span>$XHPROF_ROOT</span> = realpath(dirname(<span>__FILE__</span>) . <span>'/..'</span>); <span>include_once</span><span>$XHPROF_ROOT</span> . <span>"/xhprof_lib/utils/xhprof_lib.php"</span>; <span>include_once</span><span>$XHPROF_ROOT</span> . <span>"/xhprof_lib/utils/xhprof_runs.php"</span>; <span>// 保存统计数据,生成统计ID和source名称</span><span>$xhprof_runs</span> = <span>new</span> XHProfRuns_Default(); <span>$run_id</span> = <span>$xhprof_runs</span>->save_run(<span>$xhprof_data</span>, <span>"xhprof_foo"</span>); <span>//source名称是xhprof_foo</span><span>// 查看统计信息</span><span>echo</span><span>"<div><a href='../xhprof_html/index.php?run="</span> . <span>$run_id</span> . <span>"&source=xhprof_foo' target='_blank'>XHProf view</a></s></div>"</span>; </code>
2、顯示結果
有分錶格形式和圖片顯示各函數的呼叫情況
表格的這樣些欄位
列名 描述
Function Name 方法名稱。
Calls 方法被呼叫的次數。
Calls% 方法呼叫次數在同級方法總數呼叫次數中所佔的百分比。
Incl.Wall Time (microsec) 方法執行所花費的時間,包括子方法的執行時間。 (單位:微秒)
IWall% 方法執行花費的時間百分比。
Excl. Wall Time (microsec) 方法本身執行所花費的時間,不包括子方法的執行時間。 (單位:微秒)
EWall% 方法本身執行所花費的時間百分比。
Incl. CPU (microsecs) 方法執行所花費的CPU時間,包括子方法的執行時間。 (單位:微秒)
ICpu% 方法執行花費的CPU時間百分比。
Excl. CPU (microsec) 方法本身執行所花費的CPU時間,不包含子方法的執行時間。 (單位:微秒)
ECPU% 方法本身執行所花費的CPU時間百分比。
Incl.MemUse (bytes) 方法執行佔用的內存,包括子方法執行佔用的內存。 (單位:位元組)
IMemUse% 方法執行佔用的記憶體百分比。
Excl.MemUse (bytes) 方法本身執行佔用的內存,不包括子方法執行佔用的內存。 (單位:位元組)
EMemUse% 方法本身執行佔用的記憶體百分比。
Incl.PeakMemUse (bytes) Incl.MemUse峰值。 (單位:位元組)
IPeakMemUse% Incl.MemUse峰值百分比。
Excl.PeakMemUse (bytes) Excl.MemUse峰值。單位:(位元組)
EPeakMemUse% Excl.MemUse峰值百分比。
圖片的就需要去安裝libpng和graphviz
安裝libpng
<code>wget -c http://sourceforge<span>.net</span>/projects/libpng/files/libpng15/<span>1.5</span><span>.23</span>beta01/libpng-<span>1.5</span><span>.23</span>beta01<span>.tar</span><span>.gz</span>/download tar -xzvf ./libpng-<span>1.5</span><span>.23</span>beta01<span>.tar</span><span>.gz</span> cd ./libpng-<span>1.5</span><span>.23</span>beta01 ./configure make && make install </code>
安裝graphviz
<code>wget -c http://www<span>.graphviz</span><span>.org</span>/pub/graphviz/stable/SOURCES/graphviz-<span>2.24</span><span>.0</span><span>.tar</span><span>.gz</span> tar -xzvf ./graphviz-<span>2.24</span><span>.0</span><span>.tar</span><span>.gz</span> cd ./graphviz-<span>2.24</span><span>.0</span> ./configure make && make install </code>
安裝完,重新啟動apache
service apache2 restart
在表格頁點選[View Full Callgraph]
就可以以圖片形式來展示各個程式碼段的呼叫以效能情況
以上就介紹了ubuntu安裝xhprof,包含了方面的內容,希望對PHP教程有興趣的朋友有幫助。