PHP에서는 코드를 최적화하고 프로그램 실행 효율성을 이해하는 데 시스템 호출의 성능을 테스트하는 것이 중요합니다. 일반적으로 사용되는 두 가지 방법은 gettimeofday () 함수를 사용하여 현재 타임 스탬프를 가져오고 Exec () 함수를 사용하여 외부 명령을 실행하는 것입니다. 이 기사에서는이 두 기능을 결합하여 시스템 통화의 성능을 테스트하는 방법을 살펴 봅니다.
gettimeofday () 는 일반적으로 마이크로 초에서 높은 정밀도로 현재 시간을 반환 할 수있는 함수입니다. 이 기능은 시스템의 현재 타임 스탬프를 얻는 것인데, 이는 성능 테스트 및 기록 시차를 수행하는 데 사용할 수 있습니다.
$time = gettimeofday();
echo "현재 시간:" . $time['sec'] . "두번째 " . $time['usec'] . "微두번째";
이 함수는 초 ( SEC ) 및 마이크로 초 ( USEC ) 수를 포함하는 연관 배열을 반환합니다. 성능 테스트에서는 일반적으로 기능이 시작되기 전후의 시차를 기록하여 실행 시간을 얻습니다.
exec ()는 외부 프로그램 또는 명령을 실행하는 데 PHP에서 사용되는 기능입니다. 쉘 명령을 실행하고 실행 결과를 반환 할 수 있습니다.
$output = [];
$return_var = 0;
exec('ls -al', $output, $return_var);
print_r($output);
exec () 함수는 세 가지 매개 변수를 수락합니다.
명령 : 실행되는 명령.
출력 : 명령이 실행 된 후 출력 결과는 배열로 반환됩니다.
return_var : 명령이 실행 된 후 리턴 상태 코드입니다.
gettimeofday () 및 exec () , 특히 외부 명령을 실행하는 데 필요한 시간을 결합하여 시스템 호출의 성능을 테스트 할 수 있습니다. 다음은 특정 단계입니다.
기능이 시작되기 전 시간을 기록하십시오 . gettimeofday ()를 사용하여 현재 시간을 얻습니다.
외부 명령 실행 : exec ()를 사용하여 테스트 해야하는 명령을 실행하십시오.
기능이 끝난 후 시간을 기록하십시오 . GetTimeofday ()를 다시 호출하여 종료 시간을 얻습니다.
시차 계산 : 타임 스탬핑을 통해 명령 실행에 사용되는 시차를 계산합니다.
// 시작 시간을 기록하십시오
$start_time = gettimeofday();
// 외부 명령을 실행합니다
$command = 'ls -al';
$output = [];
$return_var = 0;
exec($command, $output, $return_var);
// 종료 시간을 기록하십시오
$end_time = gettimeofday();
// 실행 시간 차이를 계산하십시오
$elapsed_time = ($end_time['sec'] - $start_time['sec']) + ($end_time['usec'] - $start_time['usec']) / 1000000;
echo "구현하다 '$command' 보낸 시간은입니다: " . $elapsed_time . " 두번째\n";
gettimeofday ()는 현재 시간의 두 번째 및 마이크로 초 부분을 반환합니다.
exec () 명령을 실행할 때, 우리는 명령의 출력 내용을 신경 쓰지 않고 명령 실행 시간에만 관심이 있습니다.
마지막으로, 시작 시간과 종료 시간의 차이를 계산함으로써 명령을 실행하는 데 걸리는 시간이 얻어집니다.
실제 응용 분야에서 성능 테스트는 실행 시간을 계산하는 데 국한되지 않습니다. 여러 명령 실행의 평균 시간을 테스트하여보다 정확한 결과를 얻을 수도 있습니다. 또한 다음 사항은 성능 테스트 프로세스를 최적화하는 데 도움이 될 수 있습니다.
여러 시스템 호출을 병렬로 실행 : 여러 명령을 테스트 해야하는 경우 다중 스레드 또는 병렬 실행 방법을 사용하는 것을 고려할 수 있습니다.
명령 출력 감소 : 명령 출력이 필요하지 않은 경우 성능 테스트 결과에 영향을 미치지 않도록 대량의 데이터 출력을 피하십시오.
캐시 충격 방지 : 일부 명령은 시스템 캐시의 영향을받을 수있어 실행 시간이 불안정해질 수 있습니다. 임의의 지연 또는 여러 실행을 추가 하여이 문제를 피하십시오.
gettimeofday () 및 exec () 함수를 결합하여 외부 명령의 실행 시간을 간단하고 효율적으로 테스트하여 시스템 호출의 성능을 평가할 수 있습니다. 이 방법은 특히 시스템 성능 튜닝 중에 외부 명령 실행 효율을 테스트 해야하는 다양한 시나리오에 적합합니다. 테스트 방법을 지속적으로 최적화함으로써보다 정확한 성능 데이터를 얻고이를 기반으로 시스템 최적화를 수행 할 수 있습니다.