资讯专栏INFORMATION COLUMN

php中opcode缓存

codercao / 670人阅读

摘要:一般执行过程是先检查文件的签名或者修改时间,以防文件有改动。缓存通常都能够大幅度地提升应用程序的执行速度。二有哪些缓存插件于年月中旬改名为,集成,其他的会不会消失三为什么使用缓存主要是为了减少重复编译,从而减少和内存的开销。

一、什么是opcode缓存

当一个 PHP 文件被解释执行的时候,首先是被编译成名为 opcode (CPU 专用的机器语言指令)的中间代码,然后才被底层的虚拟机执行。 如果PHP文件没有被修改过,opcode 始终是一样的。这就意味着编译步骤白白浪费了 CPU 的资源。

此时 opcode 缓存就派上用场了。通过将 opcode 缓存在内存中,它能防止冗余的编译步骤,并且在下次调用执行时得到重用。一般执行过程是先检查文件的签名(signature)或者修改时间,以防文件有改动。

Opcode cache的目地是避免重复编译,减少CPU和内存开销。

opcode 缓存通常都能够大幅度地提升应用程序的执行速度。PHP 5.5 以后的所有版本都内置了一个 opcode 缓存工具,叫做 Zend OPcache。 根据你所使用的 PHP 安装包/发行版的不同,一般情况下是默认开启的,请查看 opcache.enable phpinfo() 和 phpinfo() 输出的信息确认是否已经开启。早期的版本也能通过 PECL 扩展来安装。

二、有哪些opcode缓存插件?

Optimizer+(Optimizer+于2013年3月中旬改名为Opcache,PHP 5.5集成Opcache,其他的会不会消失?)、eAccelerator、xcache、APC …

三、为什么使用opcode缓存?

主要是为了减少重复编译,从而减少CPU和内存的开销。

参考链接:https://www.cnblogs.com/JohnA...

四、opcache插件安装

请参考:https://blog.jjonline.cn/linu...

五、划重点

opcode缓存主要是为了减小CPU内存的开销,下次面试的时候关于性能提升的点,记得说opcache~

使用opcache有一个缺点,就是更新了php代码后可能不会马上生效,因为opcache有个有效时间的设置,只有过期后才会重新生成opcode否则还会沿用原来的缓存的opcode,这里,提供三种思路解决这种问题:

(1)根据业务实际情况,合理设置opcache的过期时间,也就是opcache.revalidate_freq值
(2)自己写一个php脚本,调用opcache_reset()函数重置所有opcache缓存字节码,或者使用opcache_invalidate(PHPfileDir,true)重置指定php文件的缓存字节码。
(3)最简单粗暴的方法,可立即生效的方式,就是直接重启php-fpm(nginx fast-cgi模式)或apache(apache-handler模式)。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31064.html

相关文章

  • PHP缓存Opcode缓存

    摘要:缓存之缓存什么是缓存当解释器完成对脚本代码的分析后,便将他们声称可以直接运行的中间代码,也成为操作码。同时它还提供一些接口用于开发人员将用户数据驻留在内存中,我们称之为。 PHP缓存之Opcode缓存 什么是Opcode缓存? 当解释器完成对脚本代码的分析后,便将他们声称可以直接运行的中间代码,也成为操作码(Operate Code, Opcode)。Opcode cache的目的是...

    Lucky_Boy 评论0 收藏0
  • PHP缓存Opcode缓存

    摘要:缓存之缓存什么是缓存当解释器完成对脚本代码的分析后,便将他们声称可以直接运行的中间代码,也成为操作码。同时它还提供一些接口用于开发人员将用户数据驻留在内存中,我们称之为。 PHP缓存之Opcode缓存 什么是Opcode缓存? 当解释器完成对脚本代码的分析后,便将他们声称可以直接运行的中间代码,也成为操作码(Operate Code, Opcode)。Opcode cache的目的是...

    Near_Li 评论0 收藏0
  • phpopcode缓存

    摘要:一般执行过程是先检查文件的签名或者修改时间,以防文件有改动。缓存通常都能够大幅度地提升应用程序的执行速度。二有哪些缓存插件于年月中旬改名为,集成,其他的会不会消失三为什么使用缓存主要是为了减少重复编译,从而减少和内存的开销。 一、什么是opcode缓存 当一个 PHP 文件被解释执行的时候,首先是被编译成名为 opcode (CPU 专用的机器语言指令)的中间代码,然后才被底层的虚拟...

    zhangrxiang 评论0 收藏0
  • php系列框架的加速器Opcache

    摘要:什么是当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码,。的目地是避免重复编译,减少和内存开销。这将带来显着的性能加速,通常特别是高流量和高并发量时降低了整体服务器的内存消耗,而且很少有缺点。 一、个人实践发现opcache 最近为了应对双十一期间高流量的冲击,小编通过压力测试去查找服务器性能瓶颈,发现100并发时,QPS并不是很高,但CPU和内存消耗特...

    lauren_liuling 评论0 收藏0
  • PHP 性能分析与实验——性能的宏观分析

    摘要:本文就改变性能分析的角度,并通过实例来分析出的性能方面需要注意和改进的点。如下是作为解释性语言的执行过程。这里分别启用和做实验。 编者按】此前,阅读过了很多关于 PHP 性能分析的文章,不过写的都是一条一条的规则,而且,这些规则并没有上下文,也没有明确的实验来体现出这些规则的优势,同时讨论的也侧重于一些语法要点。本文就改变 PHP 性能分析的角度,并通过实例来分析出 PHP 的性能方面...

    anquan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<