opcode是什么?
它是一种PHP脚本编译后的中间语言,类似java的字节码。
PHP代码执行(Zend引擎)的步骤如下:
1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)
2.Parsing, 将Tokens转换成简单而有意义的表达式
3.Compilation, 将表达式编译成Opocdes
4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。
opcode缓存是什么?
当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(opcode)。
opcode缓存的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode缓存的性能提升是非常有限的。
但是既然opcode缓存能带来CPU和内存开销的降低,这总归是好事。
php opcode的缓存扩展有哪些?
eAccelerator
xcache
APC
opcache(原名Zend Optimizer+)