>  기사  >  백엔드 개발  >  PHP7 01-PHP7 언어 실행 원리의 기본 설계에 대한 간략한 소개

PHP7 01-PHP7 언어 실행 원리의 기본 설계에 대한 간략한 소개

小马驹会飞
小马驹会飞원래의
2020-04-28 17:06:272261검색

PHP는 컴파일된 언어와 달리 컴파일 결과는 현재 CPU 시스템의 명령입니다. PHP 소스 코드는 opcode로 컴파일된 경우에만 zend 가상 머신에 의해 직접 실행될 수 있습니다.

다음은 PHP7 언어 실행 원리에 대한 간략한 설명입니다.

1. 소스 코드는 먼저 어휘 분석을 위해 Re2c에서 구현한 어휘 분석기를 사용하고 소스 코드를 여러 문자열 단위로 자릅니다.

2. Bison을 기반으로 구현된 구문 분석기는 BNF 문법 규칙을 준수하는 코드와 추상 구문 트리(AST)를 컴파일하여

PHP7 01-PHP7 언어 실행 원리의 기본 설계에 대한 간략한 소개우리가 자주 논의하는 설명 타입 언어의 실행 효율성은 PHP 실행 중에 opcode로 변환하는 추가 프로세스가 있기 때문에 낮습니다.

그뿐만 아니라 메모리에 상주하는 Java나 다른 언어와는 달리 PHP 코드가 실행된 직후 메모리가 해제되며, 기본적으로 이 때 모든 데이터가 소멸됩니다(아주 적은 양의 데이터만) 캐시됩니다).

이 실행 메커니즘의 장점은 메모리 누수를 효과적으로 방지하고 메모리 재활용 메커니즘이 더 간단하다는 것입니다. 단점은 각 PHP 요청이 요청-변환-실행 프로세스를 반복해야 한다는 것입니다.

참고: 메모리 누출은 해제되지 않거나 어떤 이유로 해제될 수 없는 프로그램에서 동적으로 할당된 힙 메모리를 말하며, 이로 인해 시스템 메모리가 낭비되고 프로그램 속도가 느려지거나 시스템 충돌 및 기타 심각한 결과를 초래합니다.

메모리에 상주하지 않는다는 단점을 보완하기 위해 zend 가상 머신은 다음번에 이 부분에서 첫 번째 실행의 PHP 코드 컴파일 결과를 메모리나 하드 디스크에 캐시합니다. 코드가 실행되면 캐시를 직접 읽어 PHP 실행 속도를 어느 정도 향상시킬 수 있습니다.

참고자료

1. Chen Lei, PHP7 기본 설계 및 소스 코드 구현

2. Lie Xusong, Chen Wen, PHP 핵심 기술 및 모범 사례

위 내용은 PHP7 01-PHP7 언어 실행 원리의 기본 설계에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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