답변:
이를 수행하는 몇 가지 방법이 있습니다.
1 : 웹 서버에서 mod_status 를 활성화 하십시오. 이를 통해 / server-status /를 탐색하여 Apache 서버가 일반적으로 어떻게 작동하는지에 대한 개요를 얻을 수 있습니다. 이 위치에 대한 액세스를 제한해야합니다.
ExtendedStatus on
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Location>
2 : 처리 시간을 추가하도록 LogFormat 지시문을 수정하십시오 . 그런 다음 URI를 응답 시간과 연결할 수 있습니다.
LogFormat "%h %t \"%r\" %b sec:%T usec:%D"
이것은 원격 IP, 요청 날짜-시간, 요청, 전송 된 바이트, 초 및 마이크로 초를 표시합니다.
3 : 스크립트 메모리 크기 및 스크립트 적중률의 경우 Xcache 와 함께 제공되는 관리 콘솔 이 매우 좋습니다. 클래스 계급이 큰 스크립트는 메모리에서 여러 메가로 확장 될 수 있습니다.
4 : PHP 스크립트 프로파일 링이 도움이 될 수 있습니다. 단일 스크립트 프로파일 링에 집중하고 싶다면 Xdebug 가 도움이 될 것입니다. 사용자 Damien이 방법을 제안합니다. 메모리 사용량 을 기록하고 마이크로 시간을 사용 하는 것이 좋습니다 .
$THRESH = 2;
$profile = array();
$profile['start'] = microtime( true );
// stuff
$profile['end'] = microtime( true );
$profile['delta'] = $profile['end'] - $profile['start'];
if( $profile['delta'] >= $THRESH )
error_log( __FILE__.": ".$profile['delta']." seconds " );
임계 값을 조정하면 로그가 훨씬 깨끗해집니다.
Apache JMeter로 실행하십시오 .
Apache JMeter는 정적 및 동적 자원 (파일, 서블릿, Perl 스크립트, Java 오브젝트, 데이터베이스 및 쿼리, FTP 서버 등)에서 성능을 테스트하는 데 사용될 수 있습니다. 서버, 네트워크 또는 객체의 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한로드 유형에서 전반적인 성능을 분석하는 데 사용할 수 있습니다. 이를 사용하여 성능을 그래픽으로 분석하거나 동시로드가 많은 서버 / 스크립트 / 객체 동작을 테스트 할 수 있습니다.
보고서 도구를 통해 서버 로그를 실행하십시오. 적절한 사용자는 평균 사용자가 각 페이지를 다운로드하는 데 걸리는 시간을 알려줄 수 있어야합니다. 또한 각 페이지의 최소 및 최대 다운로드 시간 및 기타 많은 통계를 보여줍니다.
스크립에 따라 마이크로 타임 기능을 사용할 수 있습니다.
$stime = microtime();
$stime = explode(" ",$stime);
$stime = $stime[1] + $stime[0];
//Some Code...
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $stime);
echo $totaltime;
결함이있는 코드 부분을 찾는 데 필요한만큼 휴식을 취하십시오.
(그러나 아마도 이것은 SO 대답이었을 것입니다 ...)