벤치마킹 클래스

CodeIgniter에는 항상 활성화되어 있는 벤치마킹 클래스가 있어, 표시된 두 지점 사이의 시간 차이를 계산할 수 있습니다.

참고

이 클래스는 시스템에 의해 자동으로 초기화되므로 수동으로 초기화할 필요가 없습니다.

또한 벤치마크는 프레임워크가 호출되는 순간 시작되고, 최종 뷰를 브라우저로 전송하기 직전에 출력 클래스에 의해 종료되므로, 전체 시스템 실행의 정확한 타이밍을 표시할 수 있습니다.

벤치마킹 클래스 사용

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

  1. 시작 지점 표시

  2. 종료 지점 표시

  3. “경과 시간” 함수를 실행하여 결과 확인

실제 코드를 사용한 예시:

$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} 의사 변수를 반환합니다. 이를 통해 템플릿에서 전체 시스템 실행 시간을 표시할 수 있습니다. 출력 클래스가 이 변수에 실제 값을 대입합니다.

memory_usage()
반환:

메모리 사용량 정보

반환 형식:

string

{memory_usage} 마커를 반환합니다.

이를 통해 메모리가 마지막에 계산될 때까지 템플릿 어디에나 배치할 수 있습니다. 출력 클래스가 이 변수에 실제 값을 대입합니다.