라이브러리
[PHP] hrtime - 시스템의 고해상도 시간을 가져옵니다.
PHP 에서 hrtime 함수는 시스템 시간을 측정하는 데 사용되는 함수입니다. hrtime 함수는 초당 1,000,000,000 (10^9) 단위로 시간을 측정합니다. 이 함수는 PHP 7.2.0 이상에서 사용할 수 있습니다.
hrtime 함수 사용법
hrtime 함수는 두 개의 인수를 받습니다. 첫 번째 인수는 시작 시간을 측정할 때 사용하는 시간 단위, 두 번째 인수는 종료 시간을 측정할 때 사용하는 시간 단위입니다. 두 번째 인수는 첫 번째 인수와 동일한 시간 단위여야 합니다.
예제 1: hrtime 함수 사용
#hostingforum.kr
php
<?php
// 시작 시간 측정
$start_time = hrtime(true);
// 시간이 지나는 동안의 작업
sleep(1);
// 종료 시간 측정
$end_time = hrtime(true);
// 시간 차이 계산
$time_diff = $end_time - $start_time;
// 시간 차이를 초 단위로 변환
$time_diff_sec = $time_diff / 1e9;
echo "작업 시간: " . $time_diff_sec . " 초
";
?>
예제 2: hrtime 함수 사용 (다중 스레드)
#hostingforum.kr
php
<?php
function worker($start_time) {
// 스레드 내부의 작업
sleep(1);
$end_time = hrtime(true);
$time_diff = $end_time - $start_time;
$time_diff_sec = $time_diff / 1e9;
echo "스레드 작업 시간: " . $time_diff_sec . " 초
";
}
// 시작 시간 측정
$start_time = hrtime(true);
// 다중 스레드 작업
$threads = [];
for ($i = 0; $i < 5; $i++) {
$thread = new class($start_time) extends Thread {
private $start_time;
public function __construct($start_time) {
$this->start_time = $start_time;
}
public function run() {
worker($this->start_time);
}
};
$threads[] = $thread;
}
// 스레드 시작
foreach ($threads as $thread) {
$thread->start();
}
// 스레드 종료 대기
foreach ($threads as $thread) {
$thread->join();
}
// 종료 시간 측정
$end_time = hrtime(true);
// 시간 차이 계산
$time_diff = $end_time - $start_time;
// 시간 차이를 초 단위로 변환
$time_diff_sec = $time_diff / 1e9;
echo "작업 시간: " . $time_diff_sec . " 초
";
?>
예제 3: hrtime 함수 사용 (병렬 처리)
#hostingforum.kr
php
<?php
function worker($start_time, $data) {
// 스레드 내부의 작업
sleep(1);
$end_time = hrtime(true);
$time_diff = $end_time - $start_time;
$time_diff_sec = $time_diff / 1e9;
echo "스레드 작업 시간: " . $time_diff_sec . " 초
";
return $data * 2;
}
// 시작 시간 측정
$start_time = hrtime(true);
// 병렬 처리
$data = 10;
$threads = [];
for ($i = 0; $i < 5; $i++) {
$thread = new class($start_time, $data) extends Thread {
private $start_time;
private $data;
public function __construct($start_time, $data) {
$this->start_time = $start_time;
$this->data = $data;
}
public function run() {
$result = worker($this->start_time, $this->data);
echo "스레드 결과: $result
";
}
};
$threads[] = $thread;
}
// 스레드 시작
foreach ($threads as $thread) {
$thread->start();
}
// 스레드 종료 대기
foreach ($threads as $thread) {
$thread->join();
}
// 종료 시간 측정
$end_time = hrtime(true);
// 시간 차이 계산
$time_diff = $end_time - $start_time;
// 시간 차이를 초 단위로 변환
$time_diff_sec = $time_diff / 1e9;
echo "작업 시간: " . $time_diff_sec . " 초
";
?>
이 예제는 hrtime 함수를 사용하여 시스템 시간을 측정하고, 다중 스레드와 병렬 처리를 사용하여 작업 시간을 측정하는 방법을 보여줍니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.