Opcode是啥以及如何使用好Opcache】的更多相关文章

转载链接:Opcode是啥以及如何使用好Opcache 啥是Opcode? 我们在日常的PHP开发过程中,应该经常会听见Opcache这个词,那么啥是Opcode呢? Opcache 的前生是 Optimizer+ ,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件. Optimizer+ 将PHP代码预编译生成的脚本文件 Opcode 缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗.同时,它还应用了一些代码优化模式,使得代码执行更…
转载  https://www.zybuluo.com/phper/note/1016714 啥是Opcode? 我们在日常的PHP开发过程中,应该经常会听见Opcache这个词,那么啥是Opcode呢? Opcache 的前生是 Optimizer+ ,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件. Optimizer+ 将PHP代码预编译生成的脚本文件 Opcode 缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗.同时,它还…
鸟哥在博客中说,提高PHP 7性能的几个tips,第一条就是开启opcache: 记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情 那么什么是Opcache呢? Opcache 的前生是 Optimizer+ ,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件. Optimizer+ 将PHP代码预编译生成的脚本文件 Opcode…
Opcode 是啥? 我们先看一下 PHP 的执行过程: PHP 初始化执行环节,启动 Zend 引擎,加载注册的扩展模块. 初始化后读取 PHP 脚本文件,Zend 引擎对 PHP 文件进行词法分析,语法分析,生成语法树. Zend 引擎编译语法树,生成 Opcode. Zend 引擎执行 Opcode,返回执行结果. 在 PHP-FPM 模式下,步骤 1 在启动时执行一次,后续的请求中不再执行:步骤 2 3 4每次请求都需要执行一遍. 2 和 3 生成的语法树和 Opcode ,同一个PHP…
https://webtatic.com/packages/php56/ PHP 5.6.5 has been released on PHP.net on 22nd January 2014, and is also available for CentOS/RHEL 6.5 at Webtatic via Yum. PHP 5.6 adds new features such as: constant scalar expressions variadic functions argumen…
opcode opcode是php解析器生成的操作码,类似java的字节码,main.class文件. opcache opcache是php的扩展,是一个实现将PHP字节码(OPCode)缓存到共享内存中到扩展.缓存字节码的好处就是减少CPU对PHP程序的加载和解析. APC(可选的PHP缓存) APC也是用来缓存PHP字节码的扩展.但是现在主要使用的是APCu和OPcache.…
Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache. GitHub地址:https://github.com/zendtech/ZendOptimizerPlus Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程.它将预编译的脚本文件存储在共享内存中供以后使用,从而避免…
opcache (全程 zend opcache): 从php5.5开始,默认提供的php脚本缓存扩展,编译php5.5时加上参数--enable-opcache就可以编译opcache了,只是要启用的话必须配置. 原理: 其实非常简单,opcache只是把把PHP执行后的数据(opcode)缓存到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的opcode代码从而提高速度,降低服务器负载 效果: 在实际应用当中能使QPS数大致增加3倍以上 注意事项: 启用opcache后,典型的问题就…
什么是opcode opcode(operate code)是计算机指令中的一部分,用于指定要执行的操作,指令的格式和规范由处理器的指定规范指定 opcode是一种php脚本编译后的中间语言,就像java的ByteCode,或者.NET的MSL 为什么要使用opcode缓存 opcode cache的目的是避免重复编译,减少CPU和内存开销的.如果动态内容的性能瓶颈不在于CPU和内容,而在于IO操作,比如数据库查询带来的IO开销,这个时候opcode cache的性能提升是非常有局限的.无论如何…
什么是opcode缓存? 当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode).Opcode cache的目地是避免重复编译,减少CPU和内存开销.如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode cache的性能提升是非常有限的.但是既然opcode cache能带来CPU和内存开销的降低,这总归是好事. 现代操作码缓存器(Optimizer+,APC2.0+,…
什么是opcode缓存? 当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode).Opcode cache的目地是避免重复编译,减少CPU和内存开销.如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O 开销,那么opcode cache的性能提升是非常有限的.但是既然opcode cache能带来CPU和内存开销的降低,这总归是好事. 现代操作码缓存器(Optimizer+,APC2.0+…
XCACHE XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载. XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 PHP 分支的最新发布版本,…
PHP的opcode缓存又出 了新成员(说新不新,也有一段日子了),那就是opcache.新浪微博等都在使用,惠新宸老师强力推荐.本人最近根据官网地址 (http://www.php.net/manual/zh/book.opcache.php)整理了一下,其安装非常简单,5.5.0 后将自动在php内核中,不必单独安装,之前的版本的安装也同其它php扩展一样,源码地址http://pecl.php.net/package/ZendOpcache,就不赘述了. 那么在安装后如何使用并配置opca…
安装环境:CENTOS6.5,nginx1.6.2,php-5.5.18,mysql5.5.38 在安装软件之前安装epel源,就可以直接用yum安装libmcrypt,mhash,mcrypt等php扩展. 安装nginx 解决依赖关系,安装开发包组"Development Tools"和 "Server Platform Development". #tar –xf nginx-1.6.2 ./configure \ --prefix=/usr/local/ng…
启用opcache,并对配置参数进行优化 [opcache] zend_extension = /usr/local/php5/lib/php/extensions/no-debug-zts-20121212/opcache.so ; Determines if Zend OPCache is enabled opcache.enable=1 ; Determines if Zend OPCache is enabled for the CLI version of PHP ;opcache.e…
转自:https://laravelacademy.org/post/4396.html 1.概述 字节码缓存不是PHP的新特性,有很多独立的扩展可以实现,比如APC.eAccelerator和Xache等,但是截至目前这些扩展都没有集成到PHP内核,从PHP 5.5.0开始,PHP内置了字节码缓存功能,名为Zend Opcache. 开始之前,我们先来看看什么是字节码缓存,以及字节码缓存的作用是什么. 众所周知,PHP是解释型语言,构建在Zend 虚拟机之上,PHP解释器在执行PHP脚本时会解…
PHP的opcode缓存又出了新成员(说新不新,也有一段日子了),那就是opcache.新浪微博等都在使用,惠新宸老师强力推荐.本人最近根据官网地址(http://www.php.net/manual/zh/book.opcache.php)整理了一下,其安装非常简单,5.5.0 后将自动在php内核中,不必单独安装,之前的版本的安装也同其它php扩展一样,源码地址http://pecl.php.net/package/ZendOpcache,就不赘述了. 那么在安装后如何使用并配置opcach…
要说明opcode cache与JIT的区别,得先明白,字节码,又叫中间码与机器码的区别. 操作码(opcode) 一条机器指令.比如我们汇编语言写的一条操作语句. 机器码(machine code) 学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写,一般从业人员接触不到. 而且机器码不支持跨平台,简单点将就是不同的CPU使用的机器码是不一样的. 字节码(byt…
简介 字节码缓存不是php的新特性,有很多独立性的扩展可以实现缓存,比如PHP Cache(APC),eAccelerator,ionCube和XCache等等.但是到目前为止,这些独立的扩展并没有集成到php核心当中.所有在php5.5.0之后,php内置了字节码缓存功能,叫做Zend Opcache. zend Opcache前身是Zend Optimizer +,在03年改名Opcache,通过opcode缓存和优化提供更快的PHP执行过程.他会将预编译后的php文件存储在共享内存中以供以…
opcache (全程 zend opcache): 从php5.5开始,默认提供的php脚本缓存扩展,编译php5.5时加上参数--enable-opcache就可以编译opcache了,只是要启用的话必须配置. 原理: 其实非常简单,opcache只是把把PHP执行后的数据(opcode)缓存到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的opcode代码从而提高速度,降低服务器负载 效果: 在实际应用当中能使QPS数大致增加3倍以上 注意事项: 启用opcache后,典型的问题就…
什么是opcode? 当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode).Opcode cache的目地是避免重复编译,减少CPU和内存开销.如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode cache的性能提升是非常有限的.但是既然opcode cache能带来CPU和内存开销的降低,这总归是好事. 为什么要使用opcode缓存? 这得从PHP代码的生命周期说…
原文地址:[PHP] - 性能加速 - 开启Opcache PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升  一.开启Opcache 在开启opcache之前,我们先介绍一下编译与解释 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.…
启动php报错如下: # /usr/local/php7/sbin/php-fpm [-Apr- ::] NOTICE: PHP message: PHP Warning: PHP Startup: Invalid library (appears to be a Zend Extension, /opcache.so 书写方法: zend_extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/opcac…
众所周知php是一种解释型语言,它的执行可分为如下几个流程: Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens) Parsing, 将Tokens转换成简单而有意义的表达式 Compilation, 将表达式编译成Opocdes Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能. 这样一来的话,对于同一个文件,反复请求,就要不断解析.编译和执行PHP脚本,消耗过多资源. php传统运行方式: 为了解决这个问题,opcode缓存技术应运而…
前言:由php的运行机制决定,其实php在运行阶段我们也是可以进行缓存的从而提高程序运行效率,这就是我们常说的opcode缓存.1.简述php的运行机制(因为本文是写opcode缓存的所以这里只是简要概述,后边会专门写一篇揭秘php运行机制的.)a).php文件通过浏览器过来b)请求交给SAPI,随后SAPI层将控制权转给PHPc)zend_language_scanner对代码进行扫描,对php代码进行词法分析转换成一系列的tokens arrayd)zend_language_parser将…
一.opcache opcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销.   PHP 5.5.0 及后续版本中已经绑定了 opcache 扩展. 对于 PHP 5.2,5.3 和 5.4 版本可以使用PECL扩展中的 opcache 库.   windows下的php扩展下载地址: http://windows.php.net/downloads/pecl/releases/ 打开php…
opcode是什么? 它是一种PHP脚本编译后的中间语言,类似java的字节码.   PHP代码执行(Zend引擎)的步骤如下: 1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens) 2.Parsing, 将Tokens转换成简单而有意义的表达式 3.Compilation, 将表达式编译成Opocdes 4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能. Zend引擎从文件系统读取文件,扫描其词典和表达式,解析文件,创建要执行的…
OPcache 有什么用? OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销. OPcache如何开启? 参考手册:http://php.net/manual/zh/opcache.installation.php OPcache相关设置?(本文主要针对windows上的配置) 关于配置的说明和更多的配置项参考:http://php.net/manual/zh/opcache.conf…
简介 在PHP的生命周期中 词法分析(zend_language_scanner),将PHP代码转换为语言片段(Tokens) 语法分析(zend_language_parser)将Tokens转换成简单而有意义的表达式 编译(compiler),将表达式编译成Opocdes,返回zend_op_array指针 Zend Engine(zend_vm_execute),顺次执行Opcodes,每次一条, 根据传入的zend_op_array指针,执行opcode并将结果返回输出 在上述执行过程中…
2016-01-21 在网上无意中看到的一篇文章,这哥们非常简洁地谈论了zend opcache的最佳设置,他说他为此花了大量的时间探索zend opcache的每个设置选项的细节,甚至是阅读它的源代码,并且在自己的项目中实践(一个每天有117 million的HTTP请求的应用).个人觉得这种文章相当有指导意义,所以特地把它的设置方式摘译如下(格式有些修改): opcache.revalidate_freq 这个选项用于设置缓存的过期时间(单位是秒),当这个时间达到后,opcache会检查你的…