2012-09-02 2 views
1

내 프로덕션 서버에서 내 응용 프로그램의 실행 시간을 확인해야합니다. (로컬 컴퓨터에서 이미 작성했습니다)
하지만 MicroFile과 afterFilter 사이에 microtime() 작은 결과, 그것을 말하십시오 $runningTime=0.20 초.
그러나 브라우저에 주소를 쓰고 출력 페이지를 보는 시간이 runningTime보다 100 배 더 큽니다.
응용 프로그램이 느려지는 누출을 찾아야합니다. 내가 브라우저에 주소를 쓰고 브라우저에서 결과를 얻는 시간차를 잡는 것이 가능합니까? 어쩌면 내가 그 원인을 알아낼 수 있을지도 모른다.
microtime()에 대한 래퍼처럼 보이는 TIME_START 상수를 발견했습니다.CakePHP에서 응용 프로그램 실행 시간 측정

+0

브라우저에서 Inspector/Firebug 도구의 Network/Timing 탭을 확인하십시오. 오버 헤드의 대부분은 PHP 지연이 아닌 네트워크 지연 일 수 있습니다. – deceze

+0

예. 나는 또한 pingdom 도구로 확인합니다. 하지만 내 코드에서 자동으로 내 서버로 로그하는 무언가가 필요합니다. – trante

+0

서버는 서버에서 실행 시간 만 기록 할 수 있습니다. 나는 지연이 다른 곳에서 일어날지도 모른다고 말하는데, 서버가 서버와 아무 관련이 없기 때문에 서버가 로그 할 수없는 곳이다. – deceze

답변

0

다른 호기심, 내 layout.ctp에 다음 코드를 추가하여이 문제를 해결 단지의 경우 사람에 URL

CakePHP 1.3: Measuring Page Execution Time

아래를 참조하십시오. 또한 컨트롤러에서이 작업을 수행하고 좀 더 고전적인 MVC 친화적이 될 수있는 변수로에서 통과, 그러나 나는 각 컨트롤러

Page rendered in <?php echo round((getMicroTime() - $_SERVER['REQUEST_TIME']) * 1000) ?>ms. 
0

코드를 복제하지 않고 사이트의 모든 페이지에이를 원 수 0.2 초의 실행 시간은 나에게 확실히 보인다. 스크립트가 20 초 내에 실행 중이면 측정을 시작하는 위치를 스크립트 시작 부분으로 이동하고 결과를 확인하십시오.

또는 xdebug profiling을 사용하여 CPU주기가 어디로 가고 있는지 확인하십시오.