laradock에서 프로파일 러 (성능 분석) 도구 xhprof를 넣고 이동
tideways/xhprof 공식 저장소: htps : // 기주 b. 코 m / 치데와 ys / php xhp 로 f - x x 텐시 온
시각화를위한 도구 : htps : // 기주 b. m / s에서 rs / xhp 여과 fhtml
아무래도 조사해 보면 laradock의 github 리포지토리에
xhprof.ini
파일이 있는 것을 알았습니다.htps : // 기주 b. 이 m/아라도 ck/아라도 ck/bぉb/마s r/phpfpm/xhp로 f. 네
설치 방법
laradock/.env
PHP_FPM_INSTALL_XHPROF=true
이것을 활성화하고 다시 빌드.
$ docker-compose build php-fpm
코드에서의 사용법
tideways_enable();
your_code();
file_put_contents(
'/tmp/offer_search.xhprof',
json_encode(tideways_disable())
);
※공식으로 써 있는 메소드명(
tideways_xhprof_enable()
)과 다른 이것으로 움직인다정보 제공 블로그 (중국어) h tps : // t 란 s. 오, ぇ. 이 m / t ran s? hl = 그럼 & sl = ← - C n & u = h tps // b ぉ g. 만고. m / 2018 / 05 / php xhp 로 f - x x 텐시 온 - 01 / & p re v = 세아 rch
이것은 laradock에 설치된 tideways 버전이 4.1.7 인 반면,
tideways의 최신 버전이 5계가 되어 있기 때문이었다.
laradock 파일 해당 위치: htps : // 기주 b. 코 m / 라도 ck / 라도 ck / b / b / 04c6 아 f3389 에 bd30 2874788 b90437 f229 에 fb0b / php fpm / 도 c
덧붙여 : 수정 PR을 냈기 때문에 최신판의 Laradock이라고 움직일 것 htps : // 기주 b. 코 m / 라도 ck / ぁ 라도 ck / 푸 l / 2342
보기
덤입니다. 여러가지 보는 솔루션이 있습니다만, 내가 시도한 방법만 기록해 둡니다.
직접 파일 보기
php-fpm 의 컨테이너에 들어가,
/tmp/
디렉토리에 가면 해당 파일이 있으므로, 다운로드 되고 카피 하는 되어 내용 볼 수 있습니다.json 이므로 jq 로 볼 수 있어
http://jsonviewer.stack.hu/
이러므로 볼 수 있습니다.xhprof-html로 보기
여기를 사용합니다. htps : // 기주 b. m / s에서 rs / xhp 여과 fhtml
사용법은 공식적으로 쓰여진 대로 간단합니다.
다만, 몇가지 흠집이 있었으므로 기록해 둡니다.
도구의 clone 대상을 프로젝트 바로 아래의
/public/
아래로 하면 laradock의 php-fpm 컨테이너 안에서는 /var/www/public/xhprof-html/
가 됩니다. 여기에 결과 출력처를 output
를 만들어 둔다고 해서 ( $ mkdir output
)
tideways_xhprof_enable();
my_application();
$data = tideways_xhprof_disable();
// ★出力先に注意
$filename = '/var/www/public/xhprof-html/output/' . intval(microtime(true)) . mt_rand(1,10000) . '.xhprof';
// ★serialize していることに注意。
file_put_contents($filename, serialize($data));
파일을 직접 볼 때는 serialize 필요하지 않습니다만, 이 툴을 사용할 때는 필요합니다.
에서 복제 된 도구의 저장소 디렉토리에서
php -S
에서 서버를 시작합니다. 이 PHP는 Mac PC의 php 명령을 사용합니다.위의 코드로 출력 대상을 결정한 곳을 URL의 쿼리 매개 변수로 추가하여 요청합니다.
http://localhost:8000/?dir=/Users/MyUserName/PathToProject/public/xhprof-html/output
여기까지는 문서에 쓰여진 대로입니다만, 마지막에 빠져 볼 만한 곳이 있었습니다. 출력 파일 이름으로 그대로 읽지 마십시오.
/Users/MyUserName/PathToProject/public/xhprof-html/output/15733478965982.xhprof.xhprof
와 같이 확장자가 2 개 붙어 있는 상태의 파일을 기대한 코드가 되어 있었습니다지금, 이런 코드가 되고 있는 상세 미조사. $type 과 $suffix 가 각각 대응하고 있어 $type 에 어쩐지 xhprof 가 들어온다(글로벌 변수 등록을 어딘가에서 하고 있는?).
그렇다면 우선 다음과 같이 고치면 치료되었습니다. (이쪽도 시간 찾아 커밋하고 싶다···)
--- a/xhprof_lib/utils/xhprof_runs.php
+++ b/xhprof_lib/utils/xhprof_runs.php
@@ -76,7 +76,8 @@ class XHProfRuns_Default implements iXHProfRuns {
private function file_name($run_id, $type) {
- $file = "$run_id.$type." . $this->suffix;
+ $file = "$run_id." . $this->suffix;
if (!empty($this->dir)) {
$file = $this->dir . "/" . $file;
그래서 결국 브라우저에 액세스하면
이런 느낌이라든지(액세스 마다 결과를 볼 수 있다)
이런 식으로 (자세한 방법을 따라가면, 그것이 얼마나 불리고, 실시간 Wall Time에서 얼마나 걸리고 있는지 알 수 있습니다.)
※프로젝트에 다소 관계가 있는 곳은 모자이크 넣어 있습니다.
Reference
이 문제에 관하여(laradock에서 프로파일 러 (성능 분석) 도구 xhprof를 넣고 이동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamotuki/items/d8112cc7dec2c04130b4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)