라이브러리

[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 함수를 사용하여 시스템 시간을 측정하고, 다중 스레드와 병렬 처리를 사용하여 작업 시간을 측정하는 방법을 보여줍니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 506 페이지

검색

게시물 검색