PHP Opcache

关于编译与解释

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 

而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.

Opcache是一种通过将解析的PHP脚本预编译的字节码存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共享内存读取已经缓存的字节码,从而大大提高PHP的执行效率。

在PHP 5.5.0及后续版本中,PHP已经将Opcache功能以拓展库形式内嵌在发布版本中了,默认未开启Opcache加速,需要开发人员在php.ini中添加或解注释Opcache相关配置即可。

$ vim php.ini

[opcache]

;启动操作码缓存

opcache.enable=1

;针对支持CLI版本PHP启动操作码缓存 一般被用来测试和调试

opcache.enable_cli=1

;共享内存大小,单位为MB

opcache.memory_consumption=128

;存储临时字符串缓存大小,单位为MB,PHP5.3.0以前会忽略此项配置

opcache.interned_strings_buffer=8

;缓存文件数最大限制,命中率不到100%,可以试着提高这个值

opcache.max_accelerated_files=4000

;一定时间内检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 单位为秒

opcache.revalidate_freq=60

;开启快速停止续发事件,依赖于Zend引擎的内存管理模块,一次释放全部请求变量的内存,而不是依次释放内存块

opcache.fast_shutdown=1

;启用检查 PHP 脚本存在性和可读性的功能,无论文件是否已经被缓存,都会检查操作码缓存,可以提升性能。 但是如果禁用了 opcache.validate_timestamps选项, 可能存在返回过时数据的风险。

opcache.enable_file_override=1

;拓展库so文件关联加载

zend_extension=/usr/local/lib/php/extensions/opcache.so

相关推荐