PHP 수행시간 측정

Jmnote (토론 | 기여)님의 2017년 11월 26일 (일) 19:46 판 (같이 보기)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
PHP 수행시간 측정, PHP 속도 측정
PHP 속도 비교, PHP 함수 성능 비교

1 수행시간 측정[편집]

<?php
function get_time() {
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$start = get_time();
/*
수행할 내용
*/
$end = get_time();
$time = $end - $start;
echo '<br/>'.$time.'초 걸림';

2 10만회 수행시간 측정[편집]

10만회 수행한 시간을 측정해보자.

$start = get_time(); // 속도 측정 시작

for($i=0;$i<100000;$i++) {
	$a = pow($i, 20);
}

$end = get_time(); // 속도 측정 끝
$time = $end - $start;
echo '<br/>수행시간: '.number_format($time,4).'초';
echo '<br/>값: '.$a;
수행결과
수행시간: 0.0540초
값: 9.9980001899886E+99

→ 수행시간은 서버의 성능에 따라 달라진다.

3 반복 측정[편집]

10만회 수행을 5회 반복 측정하고 평균을 계산해보자.

$time_arr = array();
$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 '<br/>수행시간: '.number_format($time,4).'초';
}
$time_mean = array_sum($time_arr)/$repeat;
echo '<br/>평균: '.number_format($time,4).'초';
echo '<br/>결과: '.$a;
수행결과
수행시간: 0.0535초
수행시간: 0.0541초
수행시간: 0.0542초
수행시간: 0.0538초
수행시간: 0.0538초
평균: 0.0538초
결과: 9.9980001899886E+99

4 비교 측정[편집]

pow을 pow2 또는 pow3으로 바꾸어 비교해볼 수 있다.

<!DOCTYPE html>
<meta charset="utf-8" />
<?php
function get_time() {
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

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;
}

$time_arr = array();
$repeat = 5;
for($j=0;$j<$repeat;$j++) {
	$start = get_time();
	
	for($i=0;$i<100000;$i++) {
		$a = pow2($i, 20);
	}
	
	$end = get_time();
	$time = $end - $start;
	$time_arr[] = $time;
	echo '<br/>수행시간: '.number_format($time,4).'초';
}
$time_mean = array_sum($time_arr)/$repeat;
echo '<br/>평균: '.number_format($time,4).'초';
echo '<br/>결과: '.$a;
?>
수행결과 (pow2)
수행시간: 0.3896초
수행시간: 0.3907초
수행시간: 0.3856초
수행시간: 0.3919초
수행시간: 0.3853초
평균: 0.3853초
결과: 9.9980001899886E+99
수행결과 (pow3)
수행시간: 1.4463초
수행시간: 1.4313초
수행시간: 1.4264초
수행시간: 1.4304초
수행시간: 1.4368초
평균: 1.4368초
결과: 9.9980001899886E+99
→ PHP 내장함수인 pow, 반복문을 사용한 pow2, 재귀함수인 pow3의 수행시간 비교: pow < pow2 < pow3
→ 즉 속도는 pow > pow2 > pow3

5 같이 보기[편집]

6 참고[편집]

문서 댓글 ({{ doc_comments.length }})
{{ zf.userName }}
{{ comment.name }} {{ comment.created | snstime }}