실행시간 알아내기 > php

본문 바로가기
사이트 내 전체검색

php

실행시간 알아내기

페이지 정보

작성자 서방님 댓글 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("완료");

?>

 

결과

분 류포맷타임secmsec체크타임타임간격간격합계
시작05/07/05 - 16:34:0611154512460.178397001115451246.1800
체크 205/07/05 - 16:34:0611154512460.291311001115451246.290.11290.1129
완료05/07/05 - 16:34:0611154512460.376507001115451246.380.08520.1981

 

간격합계

해당 체크x 바로전부터 해당 테크x까지의 실행시간입니다.

타임간격

해당 체크x 전까지의 모든 체크x를 더한 값입니다.

※ 다른 부분은 볼필요 없습니다.

댓글목록

등록된 댓글이 없습니다.

Total 612건 21 페이지
게시물 검색

회원로그인

접속자집계

오늘
198
어제
163
최대
1,347
전체
154,732
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.