- PHP 수행시간 측정, PHP 속도 측정
- PHP 속도 비교, PHP 함수 성능 비교
1 수행시간 측정[ | ]
PHP
Copy
function get_time() { return microtime(true); }
$start = get_time();
/*
수행할 내용
*/
$end = get_time();
$time = $end - $start;
echo number_format($time, 8) . " 초 걸림";
Loading
2 10만회 수행시간 측정[ | ]
10만회 수행한 시간을 측정해보자.
PHP
Copy
function get_time() { return microtime(true); }
$start = get_time(); // 속도 측정 시작
for($i=0;$i<100000;$i++) {
$a = pow($i, 20);
}
$end = get_time(); // 속도 측정 끝
$time = $end - $start;
echo '수행시간: ' . number_format($time, 8) . " 초\n";
echo '값: ' . $a;
Loading
- → 수행시간은 서버의 성능에 따라 달라진다.
3 반복 측정[ | ]
10만회 수행을 5회 반복 측정하고 평균을 계산해보자.
PHP
Copy
function get_time() { return microtime(true); }
$time_arr = [];
$repeat = 5;
for($j=0;$j<$repeat;$j++) {
$start = get_time();
for($i=0;$i<100000;$i++) {
$a = pow($i, 20);
}
$end = get_time();
$time = $end - $start;
$time_arr[] = $time;
echo ($j+1) . '차 수행시간: ' . number_format($time,6) . ' 초, ';
echo '결과값: ' . $a . "\n";
}
$time_mean = array_sum($time_arr)/$repeat;
echo '평균 수행시간: ' . number_format($time_mean,6) . " 초\n";
Loading
4 비교 측정[ | ]
pow을 pow2 또는 pow3으로 바꾸어 비교해볼 수 있다.
PHP
Copy
function get_time() { return microtime(true); }
function pow2($b, $n)
{
$result = 1;
for($i=0;$i<$n;$i++) {
$result *= $b;
}
return $result;
}
function pow3($b, $n)
{
if($n<2)return $b;
return pow3($b, $n-1) * $b;
}
$funcs = ['pow', 'pow2', 'pow3'];
$repeat = 2; // 측정횟수
$time_arr = [];
foreach( $funcs as $func ) {
echo "함수: $func\n";
for($j=0;$j<$repeat;$j++) {
$start = get_time();
for($i=0;$i<100000;$i++) {
$a = $func($i, 20);
}
$end = get_time();
$time = $end - $start;
$time_arr[] = $time;
echo ($j+1).'차 수행시간: ' . number_format($time,6) . ' 초, ';
echo '결과값: ' . $a . "\n";
}
$time_mean = array_sum($time_arr)/$repeat;
echo '평균 수행시간: '.number_format($time_mean,6) . " 초\n";
}
Loading
- → PHP 내장함수인 pow, 반복문을 사용한 pow2, 재귀함수인 pow3의 수행시간 비교: pow < pow2 < pow3
- → 즉 속도는 pow > pow2 > pow3
5 같이 보기[ | ]
6 참고[ | ]
편집자 Jmnote Jmnote bot 104.28.211.29
로그인하시면 댓글을 쓸 수 있습니다.