php的opcode缓存原理
2017-01-17 20:09
246 查看
opcode是什么?
它是一种PHP脚本编译后的中间语言,类似java的字节码。
PHP代码执行(Zend引擎)的步骤如下:
Zend引擎从文件系统读取文件,扫描其词典和表达式,解析文件,创建要执行的计算机代码(opcode),最后执行opcode。每次请求PHP脚本都会执行一遍以上步骤,如果PHP源代码没有变化,那么把opcode缓存下来,直接访问opcode不是更快。
opcode缓存是什么?
当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(opcode)。
opcode缓存的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode缓存的性能提升是非常有限的。
但是既然opcode缓存能带来CPU和内存开销的降低,这总归是好事。
php opcode的缓存扩展有哪些?
它是一种PHP脚本编译后的中间语言,类似java的字节码。
PHP代码执行(Zend引擎)的步骤如下:
1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens) 2.Parsing, 将Tokens转换成简单而有意义的表达式 3.Compilation, 将表达式编译成Opocdes 4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。
Zend引擎从文件系统读取文件,扫描其词典和表达式,解析文件,创建要执行的计算机代码(opcode),最后执行opcode。每次请求PHP脚本都会执行一遍以上步骤,如果PHP源代码没有变化,那么把opcode缓存下来,直接访问opcode不是更快。
opcode缓存是什么?
当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(opcode)。
opcode缓存的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode缓存的性能提升是非常有限的。
但是既然opcode缓存能带来CPU和内存开销的降低,这总归是好事。
php opcode的缓存扩展有哪些?
eAccelerator xcache APC opcache(原名Zend Optimizer+)
相关文章推荐
- php加速缓存器opcache,apc,xcache,eAccelerator
- php的高性能日志系统 seaslog 的安装与使用
- php iframe 上传文件
- php下ajax的文件切割上传
- php 输出缓冲 Output Control
- php单点登陆简单实现 (iframe方式)
- php ZeroMQ 的使用
- php 的 PHPExcel1.8.0 使用教程
- php 函数中静态变量的问题
- php多进程中的阻塞与非阻塞
- php 中的信号处理
- dede5.7 GBK 在php5.4环境下 后台编辑器无法显示文章内容
- php5.3 php-fpm 开启 关闭 重启
- php socket 编程(一)
- php Pthread 多线程 (二) Worker和Threaded
- php Pthread 多线程 (三) Mutex 互斥量
- php Pthread 多线程 (四) 共享内存
- php Pthread 多线程 (五) 线程同步
- php Pthread 多线程 (六) Pool类 线程池
- php libevent 详解与使用