鸟哥在博客中说,提高PHP 7性能的几个tips,第一条就是开启opcache:

记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 
所以之前测试时期就发生了有人一直没有启用Opcache的事情

那么什么是Opcache呢?

Opcache 的前生是 Optimizer+ ,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件。 Optimizer+ 将PHP代码预编译生成的脚本文件 Opcode 缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。从而加速PHP的执行。

PHP的正常执行流程如下

request请求(nginx,apache,cli等)-->Zend引擎读取.php文件-->扫描其词典和表达式 -->解析文件-->创建要执行的计算机代码(称为Opcode)-->最后执行Opcode--> response 返回

每一次请求PHP脚本都会执行一遍以上步骤,如果PHP源代码没有变化,那么Opcode也不会变化,显然没有必要每次都重新生成Opcode,结合在Web中无所不在的缓存机制,我们可以把Opcode缓存下来,以后直接访问缓存的Opcode岂不是更快,启用Opcode缓存之后的流程图如下所示:

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

下面介绍Opcache的安装

安装:

1、找到opcache的扩展,我的是php7.1
yum list php71*
2、安装扩展
yum install php71w-opcache.x86_64

配置:

zend_extension=opcache.so
[opcache]
;开启opcache
opcache.enable=1  ;CLI环境下,PHP启用OPcache
opcache.enable_cli=1;OPcache共享内存存储大小,单位MB
opcache.memory_consumption=128  ;PHP使用了一种叫做字符串驻留(string interning)的技术来改善性能。例如,如果你在代码中使用了1000次字符串“foobar”,在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串,其他的999次使用都会直接指向这个内存区域。这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中,如果设置了这个选项,那么它将会在所有的php-fpm进程中共享。在比较大的应用中,这可以非常有效地节约内存,提高应用的性能。
这个选项的值是以兆字节(megabytes)作为单位,如果把它设置为16,则表示16MB,默认是4MB
opcache.interned_strings_buffer=8;这个选项用于控制内存中最多可以缓存多少个PHP文件。这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和。
设置值取值范围最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。也就是说在200到1000000之间。
opcache.max_accelerated_files=4000;设置缓存的过期时间(单位是秒),为0的话每次都要检查
opcache.revalidate_freq=60;从字面上理解就是“允许更快速关闭”。它的作用是在单个请求结束时提供一种更快速的机制来调用代码中的析构器,从而加快PHP的响应速度和PHP进程资源的回收速度,这样应用程序可以更快速地响应下一个请求。把它设置为1就可以使用这个机制了。
opcache.fast_shutdown=1;如果启用(设置为1),OPcache会在opcache.revalidate_freq设置的秒数去检测文件的时间戳(timestamp)检查脚本是否更新。
如果这个选项被禁用(设置为0),opcache.revalidate_freq会被忽略,PHP文件永远不会被检查。这意味着如果你修改了你的代码,然后你把它更新到服务器上,再在浏览器上请求更新的代码对应的功能,你会看不到更新的效果
强烈建议你在生产环境中设置为0,更新代码后,再平滑重启PHP和web服务器。
opcache.validate_timestamps=0 ;开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.
opcache.file_cache=/tmp

查看phpinfo:

测试结果:

同样的接口从以前的几百毫秒提升到现在的50ms左右

来源:https://www.cnblogs.com/lamp01/p/8985068.html

PHP7开启opcache打造强悍性能相关推荐

  1. [PHP] - 性能加速 - 开启opcache

    说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的).对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法 ...

  2. php开启opcache,启用OPCache提高PHP程序性能的方法

    说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的).对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法 ...

  3. PHP7添加opcache.so模块

    启动php报错如下: # /usr/local/php7/sbin/php-fpm [09-Apr-2019 16:21:13] NOTICE: PHP message: PHP Warning: P ...

  4. php5.4开启opcache,windows下php5.6启用opcache

    最近几天一直帮朋友配置服务器,考虑只部署wordpress,为了性能原因直接上了到目前位置最新的稳定版 php 5.6.16 ,搭建 apache 2.4.17 + php 5.6.16. 部署安装配 ...

  5. php 开启 opcache,PHP开启Opcache后的一些坑

    众所周知,PHP5.5以后官方自带了一个组件叫Zend Opcache,具体可以参看官方文档.开启此扩展后可以提高PHP的执行效率,具体提升多大我会在最后给一个简简单单的测试,提供给大家参考. Opc ...

  6. 7 天打造前端性能监控系统

    2019独角兽企业重金招聘Python工程师标准>>> Day1.为什么要监控性能? "If you cannot measure it, you cannot impro ...

  7. androidx86 9.0下载_13.3寸大屏安卓9.0强悍性能刷新你认知!BOOX MAX3电纸书上手测评...

    一说到电子书,我们脑海中首先想到的如同普通书本大小的Kindle,闲暇时可以替代纸质书来阅读各种书籍.可是在接触到BOOX Max3后才知道,原来电纸书也能有13.3寸的大小并且搭配上完善强大的高性能 ...

  8. 竟领先15% 解密飞行堡垒吃鸡重装版强悍性能

    <绝地求生:大逃杀>这款游戏可以说是红遍了游戏界的2017,直到目前依然是电竞圈里的现象级游戏,日在线人数长时间保持在百万以上,其火爆程度可见一斑. 不过,想要体验"吃鸡&quo ...

  9. php开启opcache

    1.简介 OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销. 注意: 如果需要将 » X ...

最新文章

  1. 智源青年科学家黄高:面向高效推理的深度网络结构设计
  2. 神奇的 SQL 之擦肩而过 → 真的用到索引了吗
  3. 运用java集合Collections对List进行max和min操作
  4. 数据分析学习笔记——数据可视化
  5. 代码动态改变 NGUI UILabel 的字体
  6. 最近在搞react redux react-router等,
  7. MMF与WAV格式的铃声制作全过程
  8. 软件开发模式之敏捷开发(scrum)
  9. 锐浪报表使用技巧Gird++
  10. 配置 HTTP 代理(WIN10)、SOCKS 代理(WIN10)和编写 PAC 自动配置脚本
  11. 计算机无法安装u盘驱动,Win7提示“无法成功安装设备驱动程序”,解决无法安装USB驱动程序的问题!...
  12. python代码编辑器
  13. Shell 使用 expr 进行数学运算
  14. 泛函分析和他的基础概念
  15. packet tracer 学习ARP报文请求
  16. 转计算机大牛-崔添翼
  17. Havel算法-Python实现
  18. python使用IE浏览器
  19. Java学习笔记(一):Java简介
  20. Linux创建share共享文件夹

热门文章

  1. Python tcp编程,TCP服务端和TCP客户端代码编写
  2. 窗口分析函数_16_找出最后一个元素
  3. oracle触发器的测试,ORACLE触发器的测试
  4. python求斐波那契数列第n个数及前n项和_使用python求斐波那契数列中第n个数的值示例代码...
  5. 微信回调接口java返回true_java 微信支付异步回调接口
  6. 基于FPGA的UART接口协议设计
  7. 满足 Google Play 目标 API 等级 (targetSdkLevel) 的要求
  8. 【iHMI43 应用演示】之 modbus 协议(从机)通信演示
  9. python中获取当前所有的logger
  10. 项目正式环境是双机,对外的访问地址是虚拟地址,在登录门户的时候,会等待15秒,才能进入门户...