PHP-编译运行过程以及opcode缓存的笔记

作为动态语言,PHP是在运行时编译执行的,其依赖的是zend引擎(就是一个虚拟机)。

而php编译执行的过程如下:
(不在详细讲了,不懂的去补一下编译原理或者直接百度详细教程)
一. Scanning(Lexing)

   从名字上就大概理解过程了,就是扫描php文本,将文本中的文本块,转换为程序可以识别的数据块,如“空格,变量...”,总之就是zend枚举的数据类型了,专业词语,就是讲php文本转换为一个token数组;

二. Parsing, 将Tokens转换成简单而有意义的表达式

  如题目所说,就是去除多余的空格,然后将token数组转换为有逻辑关系的有意义的表达式。其实前两步,就类似于c语言的预处理和编译;

三. Compilation,将表达式编译成Opocdes(这个不用多说了)

四. Execution,Zend引擎顺次执行Opcodes

好了,以上就是基本的编译执行过程了,其实有编程经验的,看完之后,就立刻想到在生产环境中,前三步基本上执行一次之后,在以后很长的时间里都没必要执行的,这就可以加快php的执行速度了。
嗯,这就是题目所提到的opcode缓存,就是将php文本转后得到opcode缓存起来,以后就直接执行第四部就行了。

至于如何配置opcode缓存,这个还在看资料中,初步猜测也就是更改一下php的配置文件罢了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值