>  기사  >  백엔드 개발  >  PHP 성능 분석 도구 - xhprof 설치 및 사용

PHP 성능 분석 도구 - xhprof 설치 및 사용

WBOY
WBOY원래의
2016-07-30 13:31:50896검색

1. 서문

이번에는 xhprof의 설치 및 사용을 기록하는 것이 좋습니다. >

xhprof는 Facebook에서 오픈 소스로 제공하는 PHP 경량 성능 분석 도구입니다. Xdebug와 유사하지만 성능 오버헤드가 더 낮습니다.

프로덕션 환경에서 사용하려면 프로그램 스위치를 사용하여 프로파일링 여부를 제어할 수도 있습니다.

2. 설치

<spanmicrosoft yahei>1.    wget http:<span>//</span><span>pecl.php.net/get/xhprof-0.9.3.tgz  </span>
2.    tar zxf xhprof-0.9.3.<span>tgz  

</span>3.    cd xhprof-0.9.3/<span>extension

</span>4.    /usr/bin/<span>phpize 
     (php版本安装后生成的phpize文件,可根据phpinfo查看,所以php版本不同,生成的phpize也不同,此步骤主要生成configure文件)

</span>5.    ./configure  –with-php-c/bin/php-<span>config  
    (php</span>-<span>config的路径,也是php安装后生成的文件)  

</span>6.<span>    make  

</span>7.<span>    sudo make install 
    (会自动将生成的扩展文件拷贝到扩展目录中</span>/usr/lib64/php/<span>modules)

    当然具体的php文件的目录,每个人不尽相同,可根据phpinfo查询</span></spanmicrosoft>

3.php.ini 구성

<spanmicrosoft yahei><span>1</span><span>根据phpinfo找到 extension_dir的目录
</span><span>2</span> (/etc/php.d/xhprof.<span>ini)
</span><span>3</span><span>4</span><span>添加一下内容:
</span><span>5</span><span>6</span> extension=xhprof.<span>so
</span><span>7</span> xhprof.output_dir=/tmp/xhprof <span>//</span><span>xhprof的分析日志</span></spanmicrosoft>

4. 서비스 재시작

<spanmicrosoft yahei><span>1</span> sudo /etc/init.d/<span>http restart
</span><span>2</span><span>3</span> 查看phpinfo是否安装成功</spanmicrosoft>

5. >

<spanmicrosoft yahei><span> 1</span><span>开头:
</span><span> 2</span> xhprof_enable(); <span>//</span><span>开启监测  
</span><span> 3</span><span>//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数  
</span><span> 4</span><span>//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);  同时分析CPU和Mem的开销  
</span><span> 5</span><span> 6</span><span>//要测试的代码</span><span> 7</span> ...
<span> 8</span> ...
<span> 9</span> ...
<span>10</span><span>11</span><span>结尾:
</span><span>12</span><span>$xhprof_data</span> = xhprof_disable();  <span>//</span><span>停止监测,返回运行数据</span><span>13</span><span>$xhprof_root</span> = '/(xhprof的虚拟主机目录)/'<span>;  
</span><span>14</span><span>//</span><span>引入当初安装到xhprof虚拟主机目录中的文件</span><span>15</span><span>include_once</span><span>$xhprof_root</span>."xhprof_lib/utils/xhprof_lib.php"<span>;  
</span><span>16</span><span>include_once</span><span>$xhprof_root</span>."xhprof_lib/utils/xhprof_runs.php"<span>;   
</span><span>17</span><span>$xhprof_runs</span> = <span>new</span><span> XHProfRuns_Default();   
</span><span>18</span><span>$run_id</span> = <span>$xhprof_runs</span>->save_run(<span>$xhprof_data</span>, "xhprof"<span>);
</span><span>19</span><span>echo</span> '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.<span>$run_id</span>.'&source=xhprof" target="_blank">xhprof统计</a>'<span>;  </span></spanmicrosoft>
위 코드는 xhprof에 대한 가상 호스트를 설정하는 방법을 사용합니다.

소스 패키지의 xhprof_html 및 xhprof_lib 폴더를 생성한 가상 디렉터리에 복사합니다.

cp -r xhprof_html xhprof_lib /xxx/ xhprof/ (여기서의 목적은 액세스를 위한 가상 호스트로 구성할 수 있는 데이터 분석 디렉터리를 설정하는 것입니다.)

실행 후 반환된 xhprof 통계 링크를 클릭합니다.

6. 주의 사항 및 용어 설명

표시된 통계 페이지에서 [전체 호출 그래프 보기]를 클릭하면 그래픽 표시(가장 큰 항목) 성능 문제는 빨간색으로 강조 표시되고 노란색으로 표시됩니다.

클릭하면 다음 명령을 실행하면 됩니다.

<spanmicrosoft yahei><span>1</span> yum install -<span>y graphviz
</span><span>2</span> yum install graphviz-gd</spanmicrosoft>
용어설명

<spanmicrosoft yahei><span> 1</span><span>Function</span><span> Name 函数名
</span><span> 2</span><span>    Calls 调用次数
</span><span> 3</span>     Calls%<span> 调用百分比
</span><span> 4</span>     Incl. Wall <span>Time</span><span> (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒)
</span><span> 5</span>     IWall%<span> 调用的包括子函数所有花费时间的百分比
</span><span> 6</span>     Excl. Wall <span>Time</span> (microsec) 函数执行本身花费的时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒)
</span><span> 7</span>     EWall%<span> 函数执行本身花费的时间的百分比,不包括子树执行时间
</span><span> 8</span>     Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl.<span> Wall Time即为等待cpu的时间
</span><span> 9</span>     减Excl.<span> Wall Time即为等待cpu的时间
</span><span>10</span>     ICpu% Incl.<span> CPU(microsecs)的百分比
</span><span>11</span>     Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒)。
</span><span>12</span>     ECPU% Excl.<span> CPU(microsec)的百分比
</span><span>13</span>     Incl.<span>MemUse(bytes) 包括子函数执行使用的内存。
</span><span>14</span>     IMemUse% Incl.<span>MemUse(bytes)的百分比
</span><span>15</span>     Excl.MemUse(bytes) 函数执行本身内存,<span>以字节算
</span><span>16</span>     EMemUse% Excl.<span>MemUse(bytes)的百分比
</span><span>17</span>     Incl.PeakMemUse(bytes) Incl.<span>MemUse的峰值
</span><span>18</span>     IPeakMemUse% Incl.<span>PeakMemUse(bytes) 的峰值百分比
</span><span>19</span>     Excl.PeakMemUse(bytes) Excl.<span>MemUse的峰值
</span><span>20</span>     EPeakMemUse% EMemUse% 峰值百分比</spanmicrosoft>
7. 참고자료

<spanmicrosoft yahei><span>1</span> http:<span>//</span><span>blog.csdn.net/maitiandaozi/article/details/8896293</span><span>2</span> http:<span>//</span><span>www.cnblogs.com/wangtao_20/archive/2011/03/16/1986508.html</span><span>3</span> http:<span>//</span><span>www.cnblogs.com/wangtao_20/archive/2013/09/13/3320497.html</span><span>4</span><span>5</span> http:<span>//</span><span>avnpc.com/pages/profiler-php-performance-online-by-xhprof</span><span>6</span> http:<span>//</span><span>www.ituring.com.cn/article/133062?utm_source=tuicool</span></spanmicrosoft>

이상은 PHP 성능 분석 도구인 xhprof의 설치 및 사용법을 관련 내용을 포함하여 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.