순수한 문서입니다. 나중에 필요하시면 언제든지 찾아보실 수 있습니다. xhprof를 사용하여 코드 테스트 및 비교 분석을 용이하게 하세요.
추천합니다. tutorial: "php tutorial"
docker run -it -p 80:80 -v /Users/xxx/Desktop/xhprof:/data phalcon /bin/bash复制代码
php7을 지원하는 xhprof가 꽤 많이 있습니다. 우리는 github.com/longxinH/xh를 사용합니다. 여기.
git clone https://github.com/longxinH/xhprof.git复制代码
cd xhprof/extension/ /usr/server/php7/bin/phpize ./configure --with-php-config=/usr/server/php7/bin/php-config make && make install复制代码
마지막으로 실행 후 이 so 파일을 php.ini 구성에 도입해야 합니다
php.ini 파일 보기 path
/usr/server/php7/bin/php --ini Configuration File (php.ini) Path: /usr/server/php7/etc Loaded Configuration File: /usr/server/php7/etc/php.ini Scan for additional .ini files in: /usr/server/php7/etc/php Additional .ini files parsed: (none)复制代码
/usr/server/php7/etc/php.ini
[Xhprof] extension=xhprof.so xhprof.output_dir=/data/logs复制代码
편집 php-fpm을 다시 시작하세요.
를 사용하여 케이스를 구축하는 과정을 축약합니다
모니터링할 로직 앞에 다음 코드를 삽입했습니다
\xhprof_enable(); ......$order = new OrderAdepter();$result = $order->getUserOrderByOrderNo(123); ......$xhprof_data = \xhprof_disable(); print_r($xhprof_data);复制代码
output:
xhprof 확장자가 호출되었으며 출력 값 의미
ct 表示 当前这个函数调用的次数,此案例都是1次 wt 表示 函数执行时间的耗时,单位为微秒复制代码
이를 보면 우리가 얻는 정보가 그리 많지 않다는 것을 알 수 있습니다. 예를 들어 우리는 점유된 메모리, CPU 및 기타 지표에도 관심을 갖는 경우가 많습니다.
\xhprof_enable( XHPROF_FLAGS_MEMORY +XHPROF_FLAGS_CPU +XHPROF_FLAGS_NO_BUILTINS );复制代码
출력:
XHPROF_FLAGS_MEMORY 통계적 메모리 사용량
XHPROF_FLAGS_CPU CPU 사용량 통계
XHPROF_FLAGS_NO_BUILTINS 내장 함수는 계산되지 않습니다. 이 출력은 확장의 함수가 무시되었음을 알 수 있습니다. 메모리 사용량을 계산하는 데 사용된 필드에는 mu와 pmu가 사용된 메모리(바이트)를 나타냅니다. , pmu는 최대 메모리 사용량(바이트)을 나타냅니다.
3.1 이때 사용해야 합니다. xhprof_lib 라이브러리xhprof 소스 코드를 다운로드하면 디렉토리에 이미물론 차트 형식을 통해 성능 병목 현상을 보다 직관적으로 관찰할 수 있기를 바랍니다.
\xhprof_enable(XHPROF_FLAGS_MEMORY + XHPROF_FLAGS_CPU+XHPROF_FLAGS_NO_BUILTINS); ......$order = new OrderAdepter();$result = $order->getUserOrderByOrderNo(123); ......$xhprof_data = \xhprof_disable(); include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_lib.php'; include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_runs.php';$xhprof_runs = new \XHProfRuns_Default();$run_id = $xhprof_runs->save_run($xhprof_data, 'your_project');echo $run_id; //output 5cbf25e21fe9b复制代码
우리의 상단 부분은 요청된 항목에 대한 개요입니다. 인터페이스 표시기, 다음은 각 호출 함수의 구체적인 실행입니다.
필드 이름
Calls | |
---|---|
Incl. | |
함수 자체를 실행하는 데 걸리는 시간(하위 트리 실행 시간 제외). 마이크로초 단위로 계산됨 | |
호출에는 하위 함수 | |
하위 트리 실행 시간을 제외한 함수 실행 자체에 소비된 CPU 시간(마이크로초 단위로 측정) | |
하위 함수 실행에 사용된 메모리 포함, 바이트 단위로 측정 | |
함수 실행 자체 메모리(바이트) | |
Incl.MemUse | |
Excl.MemUse |