CodeIgniter User Guide Version 2.1.0


벤치마크 Benchmarking Class

CodeIgniter에는 항상 활성화되어있는 벤치마크 클래스가 포함되어있습니다.이 클래스로 어떤 두 지점(marked points) 사이의 시간 간격을 계산할수 있습니다.

Note: 이 클래스는 시스템이 자동으로 초기화하기때문에 수동으로 할 필요가 없습니다.

벤치마크는 프레임워크가 호출되는 순간 언제나 시작되며, 최종적으로 뷰페이지가 브라우저로 전송되기 직전에 종료됩니다. 이러한 특성이 시스템 동작시간을 상당히 정확하게 측정할수 있습니다.

목차

벤치마크 클래스 사용방법

벤치마크 클래스는 컨트롤러, , 혹은 모델에서 사용할 수 있습니다.사용방법은 다음과 같습니다:

  1. 시작포인트를 설정(Mark)한다
  2. 끝 포인트를 설정한다.
  3. "elapsed time" 함수를 실행하여 결과를 확인한다.

실재 사용사례입니다:

$this->benchmark->mark('code_start');

// Some code happens here

$this->benchmark->mark('code_end');

echo $this->benchmark->elapsed_time('code_start', 'code_end');

Note: "code_start" 나 "code_end" 는 여러분이 임의로 정할 수 있습니다.. 단지 두 지점을 설정하기 위한 말일뿐입니다. 당신은 어떤 말이든 원하는대로 집어넣을수 있고 , 몇개의 마커(markers)를 설정해도 상관이 없습니다. 다음예제를 봐주세요 :

$this->benchmark->mark('dog');

// Some code happens here

$this->benchmark->mark('cat');

// More code happens here

$this->benchmark->mark('bird');

echo $this->benchmark->elapsed_time('dog', 'cat');
echo $this->benchmark->elapsed_time('cat', 'bird');
echo $this->benchmark->elapsed_time('dog', 'bird');

설정한 벤치마크 포인트에서 성능검사하기(Profiling Your Benchmark Points)

벤치마크 데이터를 프로파일러 에서 사용할 수 있습니다.그러기 위해서는 설정된 마크(marks)들이 모두 짝을 이루어야하며, 각 마크 포인트(mark poin)이름은 반드시 _start_end로 끝나야합니다. 각 쌍의 마크포인트 이름은 _start,_end 부분을제외하고 반드시 동일해야합니다.예:

$this->benchmark->mark('my_mark_start');

// Some code happens here...

$this->benchmark->mark('my_mark_end');

$this->benchmark->mark('another_mark_start');

// Some more code happens here...

$this->benchmark->mark('another_mark_end');

더 자세한정보는 프로파일러 페이지를 참고하세요 .

전체수행시간 표시

CodeIgniter 가 시작하여 최종 출력이 브라우저로 보내질때까지의 전체시간을 표시하고싶다면 뷰 페이지에 아래의 코드를 삽입하시면 됩니다.<?php echo $this->benchmark->elapsed_time();?>

위코드를 보시면 두개의 포인트사이에서 시간경과를 측정하던 함수와 동일한 함수를 사용한다는것을 알수 있습니다. 파라미터가 없다면 CI 는 전체시간을 최종출력이 이루어질때까지 계속 시간을 측정합니다. 그러므로 어느위치에 이 코드를 삽입하든 최종출력이 브라우저로 전송될때까지의 시간을 측정한다는점에는 차이가 없으므로 위치에 구애받지 않으셔도 됩니다.

PHP 코드를 쓰는게 귀찮으시면, 아래의 축약 코드를 써도 같은 결과를 얻으실 수 있습니다.

{elapsed_time}

Note: 만약 벤치마크를 컨트롤러에서 수행한다면 반드시 시작/끝 포인트를 지정하셔야 합니다.

메모리 사용량 표시

만약 설치된 PHP 가 --enable-memory-limit 설정(configured with --enable-memory-limit)과 함께 설치되었다면, 전체시스템에서 사용된 메모리의 총량을 표시하실 수 있습니다. 아래의 코드를 참고하세요 .

<?php echo $this->benchmark->memory_usage();?>

Note:이 함수는 오직 뷰 파일에서만 쓸수있습니다. 사용량은 전체 어플리케이션에서 사용된 총량을 반영합니다.

PHP 코드를 쓰는게 귀찮으시면, 아래의 축약 코드를 써도 같은 결과를 얻으실 수 있습니다.

{memory_usage}