Zend OPCache的前身是Zend Optimizer + (Zend O+),在PHP5.5的发行版本中自带了Zend O+,并重新命名为:Zend OPCache。但是默认是没有启用的,可以在ini文件中enable一下。

据统计,zend opcache比apc性能要好,可以提升提升 5%-9%。

值得关注的是Zend OPCache支持PHP5.2.0+的版本,也就是说只要是5.2以上的PHP,都可以是用Zend OPCache,而不需一定要升级到PHP5.5,所以在我们目前的生产站点可以尝试使用Zend OPCache,如基于Drupal6、Drupal7的PHP5.2,PHP5.3等版本。

Drupal大学上也有关于这个问题的讨论,链接一下:Zend OPCache和APC能共用吗?

安装Zend OPCache,推荐使用自带源或者PECL包的安装方式。

yum install php-pecl-zendopcache.x86_64 -y

启用Zend OPCache, 编辑 /etc/php.d/opcache.ini 文件

zend_extension=/usr/lib64/php/modules/opcache.so
 
; Determines if Zend OPCache is enabled
opcache.enable=1

重启web服务器即可,查看info,即可看到Zend OPCache项或者使用 php -i|grep opcache。

相关问题,
1. Zend OPCache是做opcache的缓存,那么APC是还需要?个人认为,这个就不需要了,因为功能重复,虽然两个同时安装没有什么bug,但是还是不推荐使用。
ServerFault上面的也有关于apc和Zend OPCache公用的讨论,推荐不要一起用。
http://serverfault.com/questions/610524/can-zend-opcode-cache-and-apc-cache-run-together-on-same-server

2. 禁用apc相关的处理方案。
如果不使用apc,apc_store等相关apc的函数需要禁用。如果系统里面有很多相关的apc函数,可以使用apcu模块,此模块只有apc的user cache功能。
还有apc的上传进度相关功能需要代替,可以使用PHP自带的session,session.upload-progress.enabled
http://php.net/manual/en/session.configuration.php#ini.session.upload-progress.enabled

3. save_comments选项

opcache.save_comments=1

如果禁用此选项,那么PHP中所有的comment会被禁用,性能会提升,但是有些框架可能会受影响,比如Wordpress,Drupal8、PHPUnit等,建议不要禁用。

4. Zend OPCache的管理工具
两个比较好用的OPCache管理工具,笔者测试了第一个,不过貌似第二个更强大一些,呱呱^_^:
https://github.com/amnuts/opcache-gui
https://github.com/PeeHaa/OpCacheGUI


 

本文有效链接: http://www.drupal001.com/2014/09/zend-opcache-php/

用Zend OPCache提高PHP的性能的更多相关文章

  1. 使用Zend OpCache 提高 PHP 5.5+ 性能

    使用Zend OpCache 提高 PHP 5.5+ 性能 作者:admin | 时间:February 28, 2015 | 分类:Linux | 评论:1 评论 PHP 5.5 以后内建了 OpC ...

  2. 开启opcache提高性能

    在开启opcache之前,我们先介绍一下编译与解释: 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快:而解释器则是只在执行程 ...

  3. 编译安装 Zend Opcache 缓存Opcache,加速 PHP

    Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP Lice ...

  4. php-5.3 zend opcache 的设置

    故障现象,修改了代码上传到生产服务器之后,需要等待60秒才生效. 细查了一下,是opcache引起的,默认是60秒.于是我给关了,之前是ea加速,现在新版本的php好像用这个opcache了:; 2s ...

  5. php Zend Opcache,xcache,eAccelerator缓存优化详解及对比

    XCACHE XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接 ...

  6. 新一代 PHP 加速插件 Zend Opcache <转>

    注: 由于原链接已不存在, 所以我把图片重新整理了一下, 以便看起来更加直观 笔者注: 1>  PHP 性能提升之 PHP NG  =>  php next generation wiki ...

  7. Zend Optimizer,Zend Guard Loader 和 Zend Opcache 三者之间的区别

    PHP的加速插件有三个:Zend Optimizer.Zend Guard Loader 和 Zend Opcache.但其实都是一个,针对不通的php版本.名字叫法不一样而已. Zend Optim ...

  8. PHP使用Zend Opcache之优化加速和缓存清理总结

    简介 字节码缓存不是php的新特性,有很多独立性的扩展可以实现缓存,比如PHP Cache(APC),eAccelerator,ionCube和XCache等等.但是到目前为止,这些独立的扩展并没有集 ...

  9. zend opcache的最佳设置

    2016-01-21 在网上无意中看到的一篇文章,这哥们非常简洁地谈论了zend opcache的最佳设置,他说他为此花了大量的时间探索zend opcache的每个设置选项的细节,甚至是阅读它的源代 ...

随机推荐

  1. 转:简单通用的一则makefile .

    在linux下面下写程序少不了写makefile,如果每个文件都按部就班的详细的写编译脚本,效率势必低下:makefile提供了自动化变量.模式规则等,稍加利用可以提高写makefile的效率.下面列 ...

  2. 控制器中添加DB类才可以操作数据库表中的数据

    必须使用DB:  use DB;

  3. freemarker,*.ftl文件在eclipse中正确的打开方式

    解决方式一:下载eclipse相关的freemarker插件 解决方式二:本文重点介绍的,原生解决方式,方法特点无需下载插件,和eclipse编辑html和jsp文件一模一样 步骤: 1:window ...

  4. eclipse使用git提交本地项目,提交至远程github上

    准备工作: 目的:eclipse使用git提交本地项目,提交至远程github上 eclipse版本:eclipse4.5  64位 jdk版本:jdk-1.7 64位 项目类型:maven web项 ...

  5. DataTable转List,转对象

    DataTable转List public static List<T> ToListModel<T>(this DataTable table) where T : new( ...

  6. 导入项目出现: Unable to resolve target ‘android-10′ 解决办法

    进入到android项目根目录下,打开项目文件project.properties ,修改 target=android-10  的值.把10改为当前虚拟机API level的版本即可.我这里改为17 ...

  7. 类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)

    一.类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一).类模板的定义 template  <类型形参表> clas ...

  8. 不止是联网!教你玩转PC自带Wi-Fi网卡

    前言:Wi-Fi对于现在的智能手机来说已经是再熟悉不过的配置了,而主板自带Wi-Fi网卡的设计也越来越普及,但有些玩家可能思维还停留在“Wi-Fi网卡 = 连无线网络用的网卡,我用有线就不需要”的层次 ...

  9. hibernate 中集合的保存

    一.开发流程 1)引入jar包,注意引入数据库驱动包 2)创建数据库表 //创建用户表 CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, un ...

  10. 没有msdtc服务的解决方法(sql server分布式事务挂掉的解决方法)

    没有msdtc服务的解决方法如下:1.删除注册表中的键:  开始 运行 regedit  打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic ...