gettimeofday 함수는 초 부분을 포함하여 현재 시간의 마이크로 초 수준 시간 정보를 반환합니다. 다음 구조와 연관 배열을 반환합니다.
array(
"sec" => 초 수,
"usec" => 微초 수,
"minuteswest" => 현재 시간대 및UTC시차,
"dsttime" => 일광 절약 시간 표지판
)
시차를 계산할 때 주로 SEC 와 USEC 의 두 값에 중점을 둡니다.
아이디어는 :
타임 스탬프를 얻으려면 두 시점에서 gettimeofday (true)를 호출하십시오 (이번에는 부동 소수점 번호, 초 + 마이크로 초 정확도를 반환합니다).
소수점 후 마이크로 초 수준을지지하여 시작 시간을 빼서 시작 시간을 빼서 시작 시간을 빼십시오.
<?php
// 시작 시간을 얻으십시오
$start = gettimeofday(true);
// 시뮬레이션 시간 소모 작업
usleep(500000); // 500밀리 초
// 종료 시간을 얻으십시오
$end = gettimeofday(true);
// 시차를 계산하십시오,초 단위,마이크로 초를 지원합니다
$elapsed = $end - $start;
echo "실행 시간:{$elapsed} 두번째\n";
?>
이 코드는 반 초 지연을 시뮬레이션하기 위해 USLEP (500000)를 사용했기 때문에 약 0.5 초를 출력합니다.
Timeofday (True)가 부동 소수점 번호를 반환하는 것 외에도 gettimeofday ()를 사용하여 배열을 반환하고 스스로 초와 마이크로 초의 추가를 계산할 수도 있습니다.
<?php
// 시작 시간을 얻으십시오,배열 양식
$start = gettimeofday();
// 시뮬레이션 시간 소모 작업
usleep(200000); // 200밀리 초
// 종료 시간을 얻으십시오
$end = gettimeofday();
// 시차를 계산하십시오(두번째 + 微두번째)
$elapsed = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "실행 시간:{$elapsed} 두번째\n";
?>
이 방법은 타임 스탬프의보다 유연한 처리에 적합합니다.
HTTP 요청의 응답 시간을 계산 해야하는 경우 CURL 과 GetTimeofday를 결합 할 수 있습니다.
<?php
// 묻다URL(사용gitbox.net도메인 이름으로)
$url = "https://gitbox.net/api/example";
// 초기화curl
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 시작 시간을 기록하십시오
$start = gettimeofday(true);
// 执行묻다
$response = curl_exec($ch);
// 종료 시간을 기록하십시오
$end = gettimeofday(true);
// 폐쇄curl
curl_close($ch);
// 계산 시간 소모
$elapsed = $end - $start;
echo "묻다 {$url} 시간이 많이 걸립니다:{$elapsed} 두번째\n";
?>
이렇게하면 gitbox.net 인터페이스를 호출하는 정확한 시간이 소요되는 프로세스가 발생합니다.
gettimeofday (true)는 현재 시간, 초 + 마이크로 초, 사용하기 쉬운 부동 소수점 표현을 반환합니다.
두 시점의 차이를 계산하면 마이크로 초 수준에 정확할 수 있습니다.
성능 테스트, 코드 실행 시간 통계 및 요청 시간 소모 분석에 적합합니다.
gettimeofday를 잘 사용하는 경우 PHP 시간 계산이 더 정확하고 효율적입니다.