APC 상수 정의 와 PHP 의 define 비교

최근 에 클 라 우 드 플랫폼 의 초기 코드 구 조 를 할 때 상수 정의 속도 비교 문제 에 부 딪 혔 기 때문에 비교 해 보 세 요.
PHP 의 APC 확장 은 PHP 매 뉴 얼 에 다음 과 같은 설명 이 있 습 니 다.
http://cn.php.net/manual/zh/function.apc-define-constants.php
 
define() is notoriously slow. Since the main benefit of APC is to increase the performance of scripts/applications, this mechanism is provided to streamline the process of mass constant definition.
 
PHP 의 define 함수 가 느 리 고 apc 가 열 린 PHP 환경 에서 apc 를 사용 하 는 상수 정의 방식 이 define 보다 훨씬 빠르다 는 뜻 이다.
apc 상수 정 의 는 apc 를 사용 합 니 다.define_constants () 와 apcload_constants () 함수 입 니 다.
여기에 두 개의 프로그램 이 준비 되 어 있 으 며, 각각 운행 시간 을 측정 하여 그 구분 을 보 았 다.
 
define 함수 의 코드:
<?php  
$stime=microtime(true); 
  
define('TMP_PATH', '/tmp'); 
// ...    , 20  
  
echo API_MAIL; 
echo ''; 
  
$etime=microtime(true); 
echo $etime-$stime; 
?> 

 
apc 의 상수 정의 코드:
<?php 
$stime=microtime(true); 
if(!apc_load_constants('API')){ apc_define_constants('API', array( 'TMP_PATH' =--> '/tmp', 
// ...    , 20  
)); 
} 
  
echo API_MAIL; 
echo ''; 
 
$etime=microtime(true); 
echo $etime-$stime; 
?> 

 
 
실행 결과:
 
define 함수:
 
0.000098943710327148
0.00010895729064941
0.00010585784912109
0.00010395050048828

 
apc 상수 정의:
 
0.00010991096496582
0.000039100646972656
0.000042915344238281
0.000041961669921875

 
결 과 를 통 해 알 수 있 듯 이 apc 상수 정 의 는 처음 실 행 될 때 시간 과 define 의 차이 가 많 지 않다.그러나 첫 번 째 실행 후 뒤의 실행 시간 은 매우 적 고 define 의 3 분 의 1 에 불과 하 다.한편, define 이 실행 하 는 시간 은 매번 평균 적 이 고 큰 기복 이 없다.
코드 에서 분석 하면 apc 상수 정 의 는 먼저 apc 를 통 해load_constants () 함수 상수 획득, 상수 가 존재 하지 않 을 때 apc 실행define_상수 () 를 정의 합 니 다.이러한 장점 은 상 수 를 한꺼번에 PHP 실행 공간 에 가 져 오 는 것 이 며, 각각 define 이 필요 없 기 때문에 효율 이 높다 는 것 이다.
주: 이번 테스트 는 PHP 환경 에서 apc 캐 시 를 열 었 기 때문에 define 함수 의 테스트 도 메모리 수준 에서 실 행 됩 니 다.

좋은 웹페이지 즐겨찾기