>  기사  >  백엔드 개발  >  Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.

Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.

PHPz
PHPz원래의
2017-03-12 15:25:451580검색

우리 모두 알고 있듯이 PHP는 해석된 언어이며 실행은 다음과 같은 프로세스로 나눌 수 있습니다.

  1. 스캔(Lexing) , PHP 코드는 언어 조각(토큰)

  2. 파싱으로 변환되고, 토큰은 간단하고 의미 있는 표현식

  3. 으로 변환됩니다.

    컴파일, 표현식을 Opocdes로 컴파일

  4. 실행, Opcode를 하나씩 순차적으로 실행하여 PHP 스크립트의 기능을 구현합니다.

이 경우 동일한 파일에 대한 반복 요청으로 인해 PHP 스크립트의 지속적인 구문 분석, 컴파일 및 실행이 필요하므로 리소스가 너무 많이 소모됩니다.

PHP 기존 운영 모드:

Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.

이 문제를 해결하기 위해 opcode캐싱 기술이 탄생했습니다.

그럼 opcode 캐시란 무엇일까요?

인터프리터가 스크립트 코드 분석을 완료하면 직접 실행할 수 있는 중간 코드인 opcode(Operate Code, opcode)를 생성합니다. Opcode 캐싱은 컴파일된 Opcode 코드를 메모리에 캐시하는 것입니다. 다음에 이 스크립트를 실행할 때 캐시된 Opcode 코드를 직접 찾아 중간 단계 없이 마지막 단계를 직접 실행하는 것이 목적입니다. CPU 및 메모리 오버헤드를 줄입니다.

인터프리터가 스크립트 코드 분석을 완료하면 직접 실행할 수 있는 중간 코드인 opcode(Operate Code, opcode)를 생성합니다. Opcode 캐싱은 컴파일된 Opcode 코드를 메모리에 캐시하는 것입니다. 다음에 이 스크립트를 실행할 때 캐시된 Opcode 코드를 직접 찾아 중간 단계 없이 마지막 단계를 직접 실행하는 것이 목적입니다. CPU 및 메모리 오버헤드를 줄입니다.

캐시 작동 모드:

Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.

opcache는 opcode 캐싱 도구입니다.

Opcache의 장점이라고도 할 수 있는 다른 캐싱 도구와의 가장 큰 차이점은 PHP 소스 코드 트리에 들어가 공식 제품이 된다는 점입니다. 항상 PHP로 업데이트됩니다, 다른 것들은 오랫동안 존재했지만 현재는 새 버전의 PHP를 지원하지 않거나 호환성이 좋지 않습니다. 둘째, 테스트 후 opcache는 다른 도구보다 더 효율적입니다.

그럼 opcache를 활성화하는 방법은 무엇일까요?

이제 opcahce가 내장 도구로 PHP 소스 트리에 들어왔으므로 열기가 매우 간단해야 합니다. 다음은 권장 구성입니다.

zend_extension=.././...php_opcache.dll(路径)
opcache.memory_consumption=128   #共享内存opcache.interned_strings_buffer=8   #存储临时字符串opcache.max_accelerated_files=4000   #缓存文件数opcache.revalidate_freq=60  #缓存时间opcache.fast_shutdown=1opcache.enable_cli=1 opcache.enable=1   #是否开启opcode缓存

제거만 하면 됩니다. 이전;

물론 opcache에는 많은 구성이 있으므로 여기에 모두 나열하지는 않겠습니다. 위의 구성은 표준 구성이며 일반적인 요구 사항을 충족할 수 있습니다.

이론적으로 PHP 파일이 클수록, 로직이 복잡할수록 opcache의 효과는 더욱 뚜렷해지며, 속도와 동시성 방지 측면에서 큰 역할을 합니다.

로컬 환경에서 테스트한 결과는 다음과 같습니다(컴퓨터 성능이 제한됨):

Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.

서비스 서버 테스트:

Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.

Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.

효율성이 크게 향상되었습니다.

주의할 점은 opcache는 처음 실행되는 opcode를 파일에 캐싱하기 때문에 테스트 환경에서 열어서는 안 된다는 점입니다. 개발 중에 변경되었지만 결과는 다릅니다………..

opcache 캐시를 수동으로 지우려면 opcache_reset()을 실행해야 합니다. 삭제하려면 opcache가 온라인으로 구성된 경우 삭제해야 하므로 이 기능을 사용할 수 있습니다.

위 내용은 Opcode 캐싱은 PHP를 더욱 강력하게 만듭니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.