소개:
간단한 ini 파일에서 사용자 정의 상수 정의를 허용합니다. 그러면 일반적인 성능 저하 없이
내부 상수처럼 처리됩니다.
간단한 ini에서 사용자 정의 상수 정의를 허용합니다. 파일은 Define 사용에 따른 성능 문제 없이 내부 변수를 사용하는 것처럼 상수 없이 내부 상수처럼 처리됩니다.
저자는 Apache가 자식 생성을 시작하기 전에 Hidef가 PHP 모듈 init에서 초기화된다고 말했습니다.
Apache가 시작되기 전에 PHP가 시작될 때 이러한 상수가 생성되고 초기화되므로 PHP에서 상수를 정의할 필요가 없습니다. , 성능에는 문제가 없습니다!
Nginx에서도 사용 가능합니다. 설치 과정은 다음과 같습니다.
1.
# wget http://pecl.php.net/ 디렉터리에 다운로드하여 압축을 풉니다. get/hidef-0.1 .8.tgz
# tar zxvf hidef-0.1.8.tgz
# cd hidef-0.1.8
2. 구성 파일이 없습니다. phpize를 실행하여 생성하세요. 파일
# /usr/local/webserver/php/bin/phpize
# ./configure --enable-hidef --with-php-config=/usr/local/webserver/php/ bin/php-config
# make
# make install
3. php.ini 파일에 추가
# vi /usr/local/webserver/php/etc/ php.ini
---------------------------- ---------
extension=hidef.so
hidef.ini_path=/usr/local/webserver/php/etc/
------------ ----------- -------------------------- ----------- -----
hidef.ini_path가 php.ini 파일에 정의되지 않은 경우 기본 .ini 파일 읽기 위치는 /hidef입니다. vi /hidef/hidef.ini 파일을 수동으로 생성하기만 하면 됩니다.
# vi /usr/local/webserver/php/etc/hidef.ini (여기서는 상황에 따라 경로를 조정하세요)
코드 복사 코드는 다음과 같습니다
[hidef]
int ANSWER = 42;
str HX = "9enjoy";
float PIE = 3.14159;
여기서 int는 부동 소수점 숫자에 사용되며 str은 문자열에 사용됩니다.
문자열 str의 값을 큰따옴표로 묶거나 문자열 내용을 직접 작성합니다. 작은따옴표를 사용하는 경우 작은따옴표도 문자열의 내용으로 사용됩니다.
예를 들어 str HX='9enjoy'이면 실제로 저장되는 내용은 9enjoy가 아니라 '9enjoy'입니다.
4. php-fpm 다시 로드
# /usr/local/webserver/php/sbin/php-fpm reload
이때 phpinfo()를 확인하세요. 결과적으로 hidef에서 정의된 변수를 볼 수 있습니다.
---------------------------- ----------
첨부파일:
APC를 사용하는 경우 apc는 상수를 정의하는 방법을 제공합니다. apc_define_constants 및 apc_load_constants. apc_define_constants는 상수를 배열로 변환하고 이를 사용자 캐시에 저장합니다. 상수는 메모리에 저장되지만 PHP가 요청할 때마다 캐시를 읽고 별도로 정의해야 하므로 뚜렷한 성능 향상은 없습니다. 25개의 상수 정의를 테스트했는데, apc 함수를 사용하는 것이 상수를 직접 정의하는 것보다 0.01ms 더 빨랐습니다.
다음과 같이 사용하세요:
if(!apc_load_constants('definition')) {
$constants = array(
'HX' => TRUE,
'D_BUG' = > ; 1
);
apc_define_constants('define', $constants);
}
APC의 주요 이점은 성능을 높이는 것이기 때문에 매우 느립니다. scripts/applications에서 이 메커니즘은 질량 상수 정의 프로세스를 간소화하기 위해 제공됩니다. 그러나 이 기능은 예상만큼 잘 수행되지 않습니다.
더 나은 성능을 발휘하려면 PECL의 hidef 확장을 사용해 보세요. 🎜 >