>백엔드 개발 >PHP 튜토리얼 >PHP 성능 분석 도구 xhprof 설치, 사용 및 관련 주의사항

PHP 성능 분석 도구 xhprof 설치, 사용 및 관련 주의사항

jacklove
jacklove원래의
2018-07-05 17:46:221982검색

xhprof는 Facebook 엔지니어가 개발하고 유지 관리하는 PHP 성능 분석 및 디버깅 도구로, xdebug에 비해 더 가볍고 리소스를 더 절약해 줍니다. 다음 글에서는 주로 PHP 성능 분석 도구 xhprof의 설치 및 사용에 대한 관련 정보를 소개합니다. 필요한 친구가 참고할 수 있습니다.

Foreword

xhprof는 Facebook에서 오픈 소스로 제공하는 PHP 성능 모니터링 도구입니다. 리소스를 거의 차지하지 않으며 프로덕션 환경에도 배포할 수 있습니다.

코드 실행 시간을 그림 형태로 직관적으로 표시할 수 있는 graphviz와 함께 사용할 수 있습니다.

다음은 주로 설치 및 사용 과정에 대해 설명합니다

1. 설치

(1) 다운로드 및 압축 해제

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz

(2) 컴파일 및 실행

cd xhprof-0.9.4/extension/
phpize //此语句编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件,一般存放在/usr/local/php/bin/目录下
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
mkdir /tmp/xhprof

(3) php.ini 편집:

[xhprof]
extension = xhprof.so
xhprof.output_dir=/tmp/xhprof

xhprof.output_dir은 분석 생성 로그의 저장 경로입니다

(4) 플러그인 설치

마지막으로 배열이 반환됩니다. 이는 설치됨을 의미합니다. 아래에 UI 구성이 있으니 구체적인 값이 무엇을 의미하는지 걱정하지 마세요. 매우 직관적일 것입니다!

yum -y install libjpeg freetype freetype-devel libjpeg-devel liberation-sans-fonts.noarch

자동 설치

yum -y install graphviz

(5)코드 삽입

//找到你要分析的代码,在代码开始处添加,start profiling,将会统计内存占用情况
xhprof_enable(XHPROF_FLAGS_MEMORY);
//具体代码
//在代码结束位置添加
$xhprof_data = xhprof_disable(); // stop profiler, display raw xhprof data for the profiler run
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php"); # 请注意设置站点 include_path 权限
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php");
$xhprof_runs = new \XHProfRuns_Default();
// Save the run under a namespace "xhprof_foo".
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
$xhprof_runs->save_run($xhprof_data, "xhprof_foo");

(6)보기

(2)에 xhprof-0.9를 제공합니다. /xhprof_html 접속 가능한 사이트를 구성하세요. php

cd xhprof-0.9.4/xhprof_html
php -S 0.0.0.0:8990

에 내장된 서버를 사용하신 후 IP+포트에 접속하시면 됩니다.

2. 사용 지침

  • 함수 이름: 메서드 이름.

  • Calls: 메서드가 호출된 횟수입니다.

  • Calls%: 동일한 수준의 총 메서드 호출 수에 대한 메서드 호출 수의 백분율입니다.

  • Incl.Wall Time(마이크로초): 하위 메서드 실행 시간을 포함하여 메서드 실행에 걸리는 시간입니다. (단위: 마이크로초)

  • IWall%: 메소드 실행에 소요된 시간의 백분율입니다.

  • Excl. Wall Time(마이크로초): 하위 메서드의 실행 시간을 제외하고 메서드 자체를 실행하는 데 걸리는 시간입니다. (단위: 마이크로초)

  • EWall%: 메소드 자체를 실행하는 데 소요된 시간의 백분율입니다.

  • CPU 포함(마이크로초): 하위 메서드 실행 시간을 포함하여 메서드 실행에 소요된 CPU 시간입니다. (단위: 마이크로초)

  • ICpu%: 메서드 실행에 소요된 CPU 시간의 비율입니다.

  • CPU 제외(마이크로초): 하위 메서드 실행 시간을 제외하고 메서드 자체를 실행하는 데 소요된 CPU 시간입니다. (단위: 마이크로초)

  • ECPU%: 메서드 자체를 실행하는 데 소요된 CPU 시간의 비율입니다.

  • Incl.MemUse(bytes): 하위 메서드 실행이 차지하는 메모리를 포함하여 메서드 실행이 차지하는 메모리입니다. (단위: 바이트)

  • IMemUse%: 메서드 실행에 사용되는 메모리 비율입니다.

  • Excl.MemUse(bytes): 하위 메소드 실행으로 점유된 메모리를 제외하고 메소드 자체 실행으로 점유된 메모리입니다. (단위: 바이트)

  • EMemUse%: 메소드 자체 실행에 의해 차지하는 메모리 비율입니다.

  • Incl.PeakMemUse(바이트): Incl.MemUse 피크 값. (단위: 바이트)

  • IPeakMemUse%: Incl.MemUse 최대 비율입니다.

  • Excl.PeakMemUse(바이트): Excl.MemUse 피크 값. 단위: (바이트)

  • EPeakMemUse%: Excl.MemUse 피크 백분율.

참고:

1. 정식 활성화 전에 정상적인 데이터 출력에 영향을 미치지 않는지 확인하십시오. 출력 내용이 동일한지 확인한 후 다시 온라인으로 전환하세요.

2. 각 URL의 max_time을 너무 작게 설정하지 마세요.

3. xhprof는 온라인 서비스 성능에 영향을 미치므로 한 시스템에서만 모니터링하거나 xhprof.php 코드를 수정하여 요청을 무작위로 모니터링하는 것이 가장 좋습니다.

요약

당신이 관심을 가질 만한 기사:

SQLite3 데이터베이스에 연결하기 위해 db 클래스를 캡슐화하는 PHP 방법에 대한 예제 설명

방법에 대한 분석 및 설명 시뮬레이션된 http 요청을 구현하는 PHP

소켓 푸시 기술을 구현하는 PHP에 대한 설명 예

위 내용은 PHP 성능 분석 도구 xhprof 설치, 사용 및 관련 주의사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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