벤치마킹 클래스¶
CodeIgniter에는 항상 활성화되어 있는 벤치마킹 클래스가 있어, 표시된 두 지점 사이의 시간 차이를 계산할 수 있습니다.
참고
이 클래스는 시스템에 의해 자동으로 초기화되므로 수동으로 초기화할 필요가 없습니다.
또한 벤치마크는 프레임워크가 호출되는 순간 시작되고, 최종 뷰를 브라우저로 전송하기 직전에 출력 클래스에 의해 종료되므로, 전체 시스템 실행의 정확한 타이밍을 표시할 수 있습니다.
벤치마킹 클래스 사용¶
벤치마킹 클래스는 컨트롤러, 뷰, 모델 내에서 사용할 수 있습니다. 사용 방법은 다음과 같습니다:
시작 지점 표시
종료 지점 표시
“경과 시간” 함수를 실행하여 결과 확인
실제 코드를 사용한 예시:
$this->benchmark->mark('code_start');
// 여기에 코드 작성
$this->benchmark->mark('code_end');
echo $this->benchmark->elapsed_time('code_start', 'code_end');
참고
“code_start”와 “code_end”는 임의의 단어입니다. 두 마커를 설정하는 데 사용하는 단어일 뿐입니다. 원하는 어떤 단어든 사용할 수 있으며, 여러 세트의 마커를 설정할 수 있습니다. 다음 예시를 참고하세요:
$this->benchmark->mark('dog');
// 여기에 코드 작성
$this->benchmark->mark('cat');
// 추가 코드 작성
$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');
벤치마크 포인트 프로파일링¶
벤치마크 데이터를 프로파일러에서 사용하려면 표시된 모든 지점이 쌍으로 설정되어야 하며, 각 마크 포인트 이름은 _start와 _end로 끝나야 합니다. 각 쌍의 지점은 동일하게 이름이 지정되어야 합니다. 예시:
$this->benchmark->mark('my_mark_start');
// 여기에 코드 작성...
$this->benchmark->mark('my_mark_end');
$this->benchmark->mark('another_mark_start');
// 추가 코드 작성...
$this->benchmark->mark('another_mark_end');
자세한 내용은 프로파일러 페이지를 참조하세요.
전체 실행 시간 표시¶
CodeIgniter가 시작되는 순간부터 최종 출력이 브라우저로 전송되는 순간까지의 전체 경과 시간을 표시하려면 뷰 템플릿 중 하나에 다음을 배치하세요:
<?php echo $this->benchmark->elapsed_time();?>
매개변수 없이 사용하면 CodeIgniter는 최종 출력이 브라우저로 전송되기 직전까지 벤치마크를 중지하지 않습니다. 함수 호출 위치에 관계없이 타이머는 끝까지 계속 실행됩니다.
순수 PHP 대신 의사 변수(pseudo-variable)를 사용하는 대체 방법:
{elapsed_time}
참고
컨트롤러 함수 내에서 벤치마크를 수행하려면 자체 시작/종료 지점을 설정해야 합니다.
메모리 사용량 표시¶
PHP 설치가 –enable-memory-limit로 구성된 경우, 뷰 파일 중 하나에서 다음 코드를 사용하여 전체 시스템이 소비하는 메모리 양을 표시할 수 있습니다:
<?php echo $this->benchmark->memory_usage();?>
참고
이 함수는 뷰 파일에서만 사용할 수 있습니다. 소비량은 전체 앱이 사용하는 총 메모리를 반영합니다.
순수 PHP 대신 의사 변수를 사용하는 대체 방법:
{memory_usage}
클래스 레퍼런스¶
- class CI_Benchmark¶
- mark($name)¶
- 매개변수:
$name (
string) – 마커에 지정할 이름
- 반환 형식:
void
벤치마크 마커를 설정합니다.
- elapsed_time([$point1 = ''[, $point2 = ''[, $decimals = 4]]])¶
- 매개변수:
$point1 (
string) – 특정 표시 지점$point2 (
string) – 특정 표시 지점$decimals (
int) – 정밀도를 위한 소수 자릿수
- 반환:
경과 시간
- 반환 형식:
string
두 표시 지점 사이의 시간 차이를 계산하여 반환합니다.
첫 번째 매개변수가 비어 있으면 이 함수는
{elapsed_time}의사 변수를 반환합니다. 이를 통해 템플릿에서 전체 시스템 실행 시간을 표시할 수 있습니다. 출력 클래스가 이 변수에 실제 값을 대입합니다.