문제

내 질문은 기반입니다 이 기사.

XDUBUG2의 PHP 코드에 대한 프로파일 링 데이터를 어떻게 만들고 Kcachegrind와 같은 앱에 넣을 수 있습니까?

Ubuntu에서 xdebug를 성공적으로 사용했습니다. 브라우저에서 오류 메시지를 강조 표시하기 때문입니다. 그러나 나는 다음과 같은 터미널 도구를 찾지 못했습니다. xdebug.

이와 같은 내 PHP 코드를 시각적으로보고 싶습니다.

alt text

도움이 되었습니까?

해결책

이 라인을 php.ini에 추가하십시오

xdebug.profiler_enable = 1

그런 다음 웹 서버를 통해 PHP를 실행하면 웹 서버를 다시 시작해야합니다. 그렇지 않으면 Conf 변경이 선택되지 않습니다.

CLI를 통해 PHP를 실행하는 경우 물론 재시작이 필요하지 않습니다.

이제 PHP 스크립트를 실행하면 xdebug.profiler_output_dir php.ini 설정으로 지정된 디렉토리에서 Cachegrind.out.pid 파일이 작성됩니다. 기본적으로 /tmp입니다.

이 파일은 Kcachegrind가로드 할 수있는 것입니다.

이 프로필 생성을 불러 일으키는 다른 방법이 있습니다. http://www.xdebug.org/docs/all_settings#profiler_enable

다른 팁

WebGrind를 살펴보십시오 (http://code.google.com/p/webgrind/)

나는 테스트 할 시각적 환경이 아닌 터미널에만 접근 할 수있는 비슷한 상황에 처했습니다. 더 나쁜 것은, 나는 Windows 기계와 퍼티를 사용하고있었습니다.

사용 가능한 솔루션이 있습니다

  1. WebGrind 설치 (http://code.google.com/p/webgrind/)
  2. Xdebug를 실행하고 Cachegrind.out 파일을 캐시 그라인드 뷰어가있는 컴퓨터에 복사합니다.

저에게 대답은 Cachegrind 파일을 로컬 Windows 시스템에 SCP에 사용하고 Wincachegrind를 사용하여이를 보았습니다. Linux 상자에 SCP를하고 파일에서 kcachegrind를 실행할 수 있습니다. 이에 대한 단점은 파일 구조가 동일한 파일 구조가 없으므로 Sourcecode를 볼 수 없다는 것입니다. 로컬 컴퓨터에 소스도 있거나 그곳에 도착할 수 있다면 이것도 수정할 수 있습니다. VIM (또는 다른 편집기)에서 Cachegrind 파일을 열고 전역 검색을 수행하고 경로를 교체하여 로컬 컴퓨터의 올바른 소스 경로로 변경하십시오.

나는 이것이 당신이 찾고 있던 것이기를 바랍니다.

주소를 다루기 위해 편집 :

다소 다른 Callgrind 파일을 얻기 위해 노력하고있는 경우. 이를 위해서는 Linux에서 실행해야하며 (내가 생각합니다) Callgrind 및 Valgrind 프로그램을 사용할 수 있어야합니다. 여기서 마지막으로 가정해야 할 것은 PHP를 다른 방식으로 아파치 모드로 실행하고 있다는 것입니다. Apache의 시작 부분에서 Callgrind 도구를 사용한 다음 브라우저에서 요청을 실행하십시오. 이것은 PHP 콜 트리뿐만 아니라 아파치의 많은 것들에 대한 자세한 정보를 제공하여 문제를 일으킬 수 있습니다.

다음은 다음의 예입니다

sudo callgrind --dump-instr=yes --trace-jump=yes -v /usr/sbin/httpd -X

-X는 하나의 스레드만으로 디버그 모드에서 Apache를 시작합니다. 여기에서 웹 브라우저를 열고 원하는 PHP 스크립트를 누르십시오. 그런 다음 돌아가서 Apache를 종료하십시오. 이것은 또한 Callgrind 구문 분석을 종료해야합니다.

Apache 또는 웹 브라우저가 필요하지 않은 경우 PHP 명령만으로 Callgrind를 실행해보십시오.

sudo callgrind --dump-instr=yes --trace-jump=yes -v /usr/sbin/php my_php_script.php

그것은 당신에게 동일한 결과를 제공하지만 모든 아파치 물건이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top