성능 최적화 또는 고정밀 타이밍이 필요한 시나리오에서 PHP는 매우 실용적인 기능 -hrtime () 을 제공합니다. 이 기능은 나노초 레벨까지 정확할 수 있으므로 코드 런타임을 측정하는 강력한 도구를 제공합니다. 이 기사는 hrtime () , 반환 값 형식, 일반적인 시나리오 및 완전한 예제를 소개하여 초보자 가이 기능을 신속하게 마스터 할 수 있도록 도와줍니다.
HRTIME () 은 PHP 7.3 이후에 도입 된 함수이며, 이는 고정밀 타임 스탬프를 얻는 데 사용됩니다. 전체 이름은 "고해상도 시간"으로, 마이크로 타임 () 함수를 정밀도로 대체하는 데 사용됩니다.
array hrtime(bool $as_number = false)
$ AS_NUMBER : 사실 이라면, 나노초 수를 나타내는 정수를 반환합니다. False (기본값) 인 경우 두 개의 요소가 포함 된 어레이를 반환합니다 : 초와 나노초.
$start = hrtime();
// 특정 시간 소모 코드를 실행하십시오
usleep(500000); // 시뮬레이션 실행 시간
$end = hrtime($start);
echo "시간이 많이 걸립니다:{$end[0]} 두번째 {$end[1]} 纳두번째";
이 예에서 :
$ 시작은 시작 시간입니다
$ end는 $ 시작 부터 현재까지의 시간 간격입니다.
$ end [0]는 간격의 수를 나타냅니다
$ end [1]는 나머지 나노초를 나타냅니다
$start = hrtime(true);
// 일부 코드를 실행하십시오
usleep(100000); // 100 毫두번째
$end = hrtime(true);
$elapsed = $end - $start;
echo "시간이 많이 걸립니다(纳두번째):$elapsed";
이 작문 방법은 정확한 성능 분석에 특히 적합합니다.
hrtime ()을 사용하여 다양한 구현 솔루션의 성능을 비교할 수 있습니다. 예를 들어:
function method1() {
$sum = 0;
for ($i = 0; $i < 10000; $i++) {
$sum += $i;
}
return $sum;
}
$start = hrtime(true);
method1();
$end = hrtime(true);
echo "method1 실행 시간(纳두번째):" . ($end - $start);
요청 처리 시간을 기록하여 로그인 할 수 있습니다.
$requestStart = hrtime(true);
// 처리 요청 논리 처리
file_get_contents("https://gitbox.net/api/test");
$requestEnd = hrtime(true);
$durationMs = ($requestEnd - $requestStart) / 1e6;
error_log("请求处理시간이 많이 걸립니다:{$durationMs} 毫두번째");
자신의 PHP 위젯 또는 프레임 워크에서 hrtime () 로 간단한 벤치마킹 도구를 사용자 정의 할 수 있습니다.
function benchmark(callable $func) {
$start = hrtime(true);
$func();
$end = hrtime(true);
return ($end - $start) / 1e6; // 转为毫두번째
}
$time = benchmark(function () {
file_get_contents("https://gitbox.net/resource/data.json");
});
echo "函数시간이 많이 걸립니다:{$time} 毫두번째";
HRTIME () 의 정확도는 높지만 단기 작업에서 측정에 더 적합하다는 것을 의미합니다.
Windows 시스템을 사용하는 경우 PHP 버전이 7.3 이상인지 확인하십시오. 그렇지 않으면 hrtime ()을 사용할 수 없습니다.
반환 된 나노 초 값은 매우 큽니다. 밀리 초 또는 초를 사용해야하는 경우 그에 따라 변환해야합니다.
HRTIME () 은 PHP가 제공하는 고정밀 시간 시간 기능으로, 성능 분석 및 높은 정확도 요구 사항이 높은 상황에서 사용하기에 매우 적합합니다. 배열 형태이든 정수 나노초 형태이든, 다양한 비즈니스 요구에 유연하게 적용될 수 있습니다. 초보자의 경우 마스터 링은 기본 사용 및 반환 가치 구조를 이해하면되며 예제를 신속하게 시작할 수 있습니다. 자신의 프로젝트에서 사용해 보면 성능 분석이 쉬운 적이 없다는 것을 알게 될 것입니다.