실행시간 알아내기
페이지 정보
작성자 서방님 댓글 0건 조회 85회 작성일 15-02-23 09:20본문
<?
//**************//
//작성장:xxx//
//**************//
class StopWatch
{
var $exec_time;
var $decimal_places = 4;
var $start_time;
var $end_time;
var $check_time = array();
function start()
{
$mt = $this->_time();
$this->start_time = doubleval($mt[0]) + $mt[1];
}
function result()
{
$mt = $this->_time();
$this->end_time = doubleval($mt[0]) + $mt[1];
$this->exec_time = sprintf("%1.".$this->decimal_places."f", $this->end_time - $this->start_time);
return $this->exec_time;
}
function _time()
{
return explode(" ", microtime());
}
/* sign : 체크분류
* msec : 마이크로단위 시간
* sec : 초단위 시간
* format_time : 월/일/년 - 시:분:초
* c_time : 체크시간
* interval : 이전 체크와의 간격
*/
function check($sign="")
{
$idx = count($this->check_time);
$this->check_time[$idx][sign] = $sign?$sign:"체크 ".($idx+1);
$mt = $this->_time();
$this->check_time[$idx][msec] = $mt[0];
$this->check_time[$idx][sec] = $mt[1];
$this->check_time[$idx][format_time] = strftime("%x - %X",$mt[1]);
$this->check_time[$idx][c_time] = doubleval($mt[0]) + $mt[1];
$this->check_time[$idx][interval] = ($idx==0)?0:sprintf("%1.".$this->decimal_places."f", $this->check_time[$idx][c_time] - $this->check_time[$idx-1][c_time]);
}
function print_check($sign="")
{
$this->check($sign);
$table = "
<TABLE border='0' cellspacing='1' cellpadding='0' bgcolor='#1879C6' width='600'>
<TR bgcolor='FFF FFF' align='center' class='t1' width='100%' height='26'>
<TD>분 류</TD>
<TD>포맷타임</TD>
<TD>sec</TD>
<TD>msec</TD>
<TD>체크타임</TD>
<TD>타임간격</TD>
<TD>간격합계</TD>
</TR>";
for($i=0 ; $i<count($this->check_time) ; $i++)
{
$total_interval += $this->check_time[$i][interval];
$table .= "
<TR bgcolor='FFFFFF' align='center' class='t1' width='100%' height='24'>
<TD>".$this->check_time[$i][sign]."</TD>
<TD>".$this->check_time[$i][format_time]."</TD>
<TD>".$this->check_time[$i][sec]."</TD>
<TD>".$this->check_time[$i][msec]."</TD>
<TD>".$this->check_time[$i][c_time]."</TD>
<TD>".$this->check_time[$i][interval]."</TD>
<TD>$total_interval</TD>
</TR>";
}
$table .= "</TABLE>";
echo"$table";
}
}
$StopWatch = new StopWatch();
$StopWatch->check("시작");
for($num=0;$num<10000;$num++) echo "byc<br>";
$StopWatch->check();
for($num=0;$num<10000;$num++) echo "byc<br>";
$StopWatch->print_check("완료");
?>
결과
분 류 | 포맷타임 | sec | msec | 체크타임 | 타임간격 | 간격합계 |
시작 | 05/07/05 - 16:34:06 | 1115451246 | 0.17839700 | 1115451246.18 | 0 | 0 |
체크 2 | 05/07/05 - 16:34:06 | 1115451246 | 0.29131100 | 1115451246.29 | 0.1129 | 0.1129 |
완료 | 05/07/05 - 16:34:06 | 1115451246 | 0.37650700 | 1115451246.38 | 0.0852 | 0.1981 |
간격합계
해당 체크x 바로전부터 해당 테크x까지의 실행시간입니다.
타임간격
해당 체크x 전까지의 모든 체크x를 더한 값입니다.
※ 다른 부분은 볼필요 없습니다.
댓글목록
등록된 댓글이 없습니다.