티스토리 뷰

웹개발/Php

XDEBUG PROFILE

야쿠 yaku 2010.12.15 13:24

프로파일러 시작하기



php.ini 에서 xdebug.profiler_enable 옵션을 1 로 설정하면 xdebug.profiler_output_dir 에 세팅된 디렉토리로 프로파일 데이터가 저장됨. 프로파일 데이터가 저장되는 파일의 이름은 항상 "cachegrind.out." 으로 시작되고 PID나 디버깅되는 스크립트가 들어있는 디렉토리의 crc32 hash 값으로 끝남. 프로파일러를 사용하기 위해선 항상 xdebug.profiler_output_dir 에 지정된 디렉토리의 공간에 신경써야 함.
xdebug.profiler_enable_trigger 값을 1 로 설정하면 선택적으로 프로파일러를 실행시킬 수 있음. (GET/POST/COOKIE 값에 변수명을 XDEBUG_PROFILE 로 지정하고 request를 하면 실행됨) FireFox 2의 extension은 이 방법으로 프로파일러를 실행시킴. 만약 선택적으로 프로파일러를 실행시키려고 한다면, xdebug.profiler_enable을 0 으로 세팅해야 제대로 동작함.


프로파일 분석



KCacheGrind의 대략적인 설명만 나와 있으므로 KCacheGrind의 Documentation 페이지 참고 => http://kcachegrind.sourceforge.net/html/Documentation.html
(어차피 대략 보면 직관적으로 알 수 있는 내용들임...)


ini options



xdebug.profiler_append
type integer
default value 0
description 이 옵션값이 1 로 세팅되면, 같은 요청으로 생성된 프로파일러 파일에 데이터를 쓸 때 overwrite 하지 않고 append 형식으로 저장됨. xdebug.profiler_output_name 설정값에 따라 append 하지 않고 매번 새로운 파일에 쓸 수도 있음)


xdebug.profiler_enable
type integer
default value 0
description 이 옵션값이 1 로 세팅되면 Xdebug는 profile_output_directory에 설정된 디렉토리에 프로파일러 파일을 생성함. 이 옵션은 PHP 스크립트의 ini_set() 함수로는 세팅할 수 없음. 만약 프로파일러를 선택적으로 실행시키고 싶다면 이 옵션은 끄고, xdebug.profiler_enable_trigger 를 1 로 세팅하는 방법을 사용할 것.


xdebug.profiler_enable_trigger
type integer
default value 0
description 이 옵션값이 1 로 세팅되면 GET/POST/COOKIE 에 XDEBUG_PROFILE 이라는 키를 가지는 데이터를 세팅함으로써 프로파일러를 실행시킬 수 있음. 요청시마다 매번 프로파일러 파일이 만들어지는 것을 방지하기 위해 xdebug.profiler_enable 값을 0 으로 세팅해야 함.


xdebug.profiler_output_dir
type string
default value /tmp
description 프로파일러 파일이 생성될 디렉토리 경로. PHP가 쓰기 권한을 가지는 경로인지 반드시 체크할 것. 이 옵션은 스크립트의 ini_set() 함수로 세팅할 수 없음.


xdebug.profiler_output_name
type string
default value cachegrind.out.%p
description trace 파일이름을 정하듯이 프로파일러 파일의 이름을 정함. trace 파일의 이름을 정하는 데 사용한 format specifiers 를 이용할 수 있음. 참고 => xdebug - 함수 추적
저작자 표시
신고

'웹개발 > Php' 카테고리의 다른 글

PHP 참조 반환하기  (0) 2010.12.20
레퍼런스 함수  (0) 2010.12.18
XDEBUG PROFILE  (0) 2010.12.15
PHP 매직 메소드  (0) 2010.11.25
Php Session 정보  (0) 2010.11.24
추상 팩토리 패턴 그리고 의존성 주입에 대한 내 생각  (0) 2010.09.03
댓글
댓글쓰기 폼