当前位置: 首页 > 后端技术 > PHP

PHP7底层规划简介01-PHP7语言执行原理

时间:2023-03-29 18:37:17 PHP

PHP是一种解释型语言,不同于编译型语言。编译后的结果就是当前CPU系统的指令。PHP源码只有编译成opcode才能被zend虚拟机直接实现使用。  以下简单介绍PHP7语言执行原理:  源码首先使用Re2c实现的词法分析器进行词法分析,将源码切割成多个字符串单元,切割后的字符串调用代币;  根据Bison完成的语法分析器,将符合BNF语法规则的Token和代码生成抽象语法树;  编译抽象语法树(AST)生成操作码;  我们经常讨论的注释语言执行效率低下,因为PHP执行过程需要更多的翻译成opcode过程。不仅如此,与Java等语言常驻内存不同,PHP代码执行完后内存会立即释放,此时基本上所有数据都会被销毁(只有极少量的数据将被缓存)。这种执行机制的好处是可以有效防止内存泄漏,内存回收机制更简单。缺点是每次PHP请求都要重复请求-翻译-执行的过程。为了弥补非常驻内存的不足,引入了操作码缓存。zend虚拟机将第一次执行的PHP代码编译结果缓存在内存或硬盘中。下次执行这部分代码时,直接读取缓存,可以一定程度上提高。PHP运行速度。  内存泄漏(MemoryLeak)是指程序中已经动态分配的堆内存没有被释放或由于某种原因无法释放,造成系统内存的浪费,造成运行速度变慢等严重后果程序的运行速度,甚至使系统崩溃。