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>
결과 표시
각 기능의 호출 상태를 보여주는 표와 그림이 있습니다
테이블의 이러한 필드
열 이름 설명
함수 이름 방법 이름입니다.
호출 메소드가 호출된 횟수입니다.
호출% 동일한 수준의 총 메서드 호출 수에 대한 메서드 호출 수를 백분율로 나타낸 것입니다.
Incl.Wall Time(마이크로초) 하위 메소드 실행 시간을 포함하여 메소드 실행에 소요되는 시간입니다. (단위: 마이크로초)
IWall% 메서드 실행에 소요된 시간의 비율입니다.
Excl. Wall Time (microsec) 하위 메소드 실행 시간을 제외하고 메소드 자체를 실행하는 데 걸리는 시간입니다. (단위: 마이크로초)
EWall% 메소드 자체를 실행하는 데 소요된 시간의 백분율입니다.
CPU 포함(마이크로초) 하위 메서드 실행 시간을 포함하여 메서드 실행에 소요된 CPU 시간입니다. (단위: 마이크로초)
ICpu% 메서드 실행에 소요된 CPU 시간의 비율입니다.
CPU 제외(마이크로초) 하위 메서드 실행 시간을 제외하고 메서드 자체를 실행하는 데 소요된 CPU 시간입니다. (단위: 마이크로초)
ECPU% 메서드 자체에서 소비한 CPU 시간의 비율입니다.
Incl.MemUse(바이트) 하위 메서드 실행에서 차지하는 메모리를 포함하여 메서드 실행에서 차지하는 메모리입니다. (단위: 바이트)
IMemUse% 메서드 실행에 사용되는 메모리 비율입니다.
Excl.MemUse(바이트) 하위 메서드 실행에 사용된 메모리를 제외하고 메서드 자체 실행에 사용된 메모리입니다. (단위: 바이트)
EMemUse% 메서드 자체가 차지하는 메모리 비율입니다.
Incl.PeakMemUse(바이트) Incl.MemUse 피크 값입니다. (단위: 바이트)
IPeakMemUse% Incl.MemUse 피크 백분율입니다.
Excl.PeakMemUse(바이트) 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
테이블 페이지에서 [전체 호출 그래프 보기]를 클릭하세요
사진을 사용하여 각 코드 세그먼트의 호출 및 성능을 표시할 수 있습니다
위 내용은 우분투에서의 xhprof 설치에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.