使用 OpCache 提升 PHP 性能

使用 OpCache 提升 PHP 性能

wdd2007wdd2007 1.6k 1月29日 发布
推荐 0 推荐
收藏 5 收藏,2.3k 浏览
OpCache 通过对 opcode 的缓存和优化来提升 PHP 执行速度。在 PHP 5.5、5.6 版本中 OpCache 已内建,编译安装时使用 --enable-opcache 即可。PHP 5.2 - 5.4 也可手动安装。

项目主页

http://pecl.php.net/package/ZendOpcache

开启方法

修改 php.ini 文件sudo vim /etc/php.ini

在文件最后面加入:

; 开关打开
opcache.enable=1

; 可用内存, 酌情而定, 单位 megabytes
opcache.memory_consumption=256

; 最大缓存的文件数目, 命中率不到 100% 的话, 可以试着提高这个值
opcache.max_accelerated_files=5000

; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 单位为秒
opcache.revalidate_freq=240

; interned string 的内存大小, 也可调
opcache.interned_strings_buffer=8   

; 是否快速关闭, 打开后在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1

; 不保存文件/函数的注释
opcache.save_comments=0
检查安装:

    php -v

    PHP 5.5.3-1ubuntu2.2 (cli) (built: Feb 28 2014 20:06:05)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
        with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
重启服务

sudo /etc/init.d/php-fpm restart
sudo /etc/init.d/nginx restart
查看效果

拥有漂亮的图形化界面的项目 : https://github.com/PeeHaa/OpCacheGUI
单文件, 方便部署的项目: https://github.com/rlerdorf/opcache-status
小提示

如果在更新代码之后,发现没有执行的还是旧代码,可使用函数 opcache_reset() 来清除缓存。该函数将重置整个字节码缓存。 在调用 opcache_reset() 之后,所有的脚本将会重新载入并且在下次被点击的时候重新解析。

参考:

1、使用 OpCache 提升 PHP 5.5+ 程序性能:https://phphub.org/topics/301
2、ZendOpcache 官方下载:http://pecl.php.net/package/ZendOpcache
3、一个关于Zend O+的小分享:http://www.laruence.com/2013/11/11/2928.html
4、OCP -Opcache Control Panel:https://gist.github.com/ck-on/4959032点击预览
5、PHP WIKI 关于整合 ZendOpcache 进入发行版的讨论:https://wiki.php.net/rfc/optimizerplus

zend-opcache

opcache
时间: 2024-10-27 17:17:09

使用 OpCache 提升 PHP 性能的相关文章

极光开发者沙龙 之 移动应用性能优化实践 【一】旧酒新瓶——换个角度提升 App 性能与质量

旧酒新瓶--换个角度提升 App 性能与质量 主讲人:高亮亮 ---   饿了么移动技术部高级iOS工程师,负责饿了么商家版iOS APP开发,对架构和系统底层有深入研究,擅长移动性能分析,trouble shooting,iOS 逆向编程. 主讲时间:2017-05-26 主讲内容: 1.性能与质量概述: 2."新"技术概念的介绍与实践: 3.违反常规的"真理": 一.性能与质量概述: ? 应用分级以及与性能质量的关系 ? 根据设备特点设计提升方案 ? 结合主要业

React爬坑秘籍(一)——提升渲染性能

React爬坑秘籍(一)——提升渲染性能 ##前言 来到腾讯实习后,有幸八月份开始了腾讯办公助手PC端的开发.因为办公助手主推的是移动端,所以导师也是大胆的让我们实习生来技术选型并开发,他来做code review.之前也学习过React,当然也是非常合适这一次的开发. 我会梳理这一个月来,自己对架构的思考过程和踩过的坑.当然这一切都不一定是最佳的,所以希望能有更多的建议和讨论. 例子所需库:Webpack.React.Immutable.其中Webpack用于前端构建,如果不清楚的同学可以看这

[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能

[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种.NET中特别重要的缓布技术Cache.利用Cache提升程序性能. 1. 缓存Cache的命名空间 .NET中对缓存有两个命名空间 命名空间1:System.Web.Caching 命名空间2:System.Runtime.Caching 引用范围:这两个命名空间,都可以在Web和非WEB应用程序中

MySQL如何避免使用Linux的swap分区而提升读写性能

MySQL如何避免使用Linux的swap分区而提升读写性能 Linux有很多很好的内存.IO调度机制,但是并不会适用于所有场景.对于DBA来说Linux比较让人头疼的一个地方是,它不会因为MySQL很重要就避免将分配给MySQL的地址空间映射到swap上.对于频繁进行读写操作的系统而言,数据看似在内存而实际上在磁盘是非常糟糕的,响应时间的增长很可能直接拖垮整个系统.这篇blog主要讲讲我们作为DBA,怎样尽量避免MySQL惨遭swap的毒手. 首先我们要了解点基础的东西,比如说为什么会产生sw

应用 memcached 提升站点性能

简介 memcached 常被用来加速应用程序的处理,在这里,我们将着重于介绍将它部署于应用程序和环境中的最佳实践.这包括应该存储或不应存储哪些.如何处理数据的灵活分布以及如何调节用来更新 memcached 和所存储数据的方法.我们还将介绍对高可用性的解决方案的支持,比如 IBM WebSphere® eXtreme Scale. 所有的应用程序,特别是很多 web 应用程序都需要优化它们访问客户机和将信息返回至客户机的速度.可是,通常,返回的都是相同的信息.从数据源(数据库或文件系统)加载数

提升Web性能的8个技巧总结

提升Web性能的8个技巧总结 在互联网盛行的今天,越来越多的在线用户希望得到安全可靠并且快速的访问体验.针对Web网页过于膨胀以及第三脚本蚕食流量等问题,Radware向网站运营人员提出以下改进建议,帮助他们为用户提供最快最优质的访问体验. 1. 管理“页面膨胀” 页面大小与性能有着密切的关系.Radware最新电商性能“行业现状”报告显示,100强电商页面大小中位数达到了1492KB,比一年半之前增大了48%. 在研究报告里加载最快的10个页面中,页面包含的资源请求中位数为50个,页面大小中位

如何在响应式基础上提升移动性能///响应式不是万能的!教你提升响应式设计的移动性能(一)

如何在响应式基础上提升移动性能 摘要:如何在响应式基础上提升移动性能,从细节做起,结合网站,做好响应式页面的设计优化工作.,随着互联网的高速发展,合肥网站建设小编今天为大家介绍,为解决移动性能的响应式页面设计并不是万能的,而应该不断的改进,从而更好的为用户服务.随着互联网的高速发展,例如近段时间炒得火热的谷歌申请的无人机技术,以及电商门户网站阿里巴巴的上市等等,这都促进了互联网日新月异的变化. 所以作为网站seo人员不应固步自封,而应该努力的跟上时代的步伐,不仅需要学习相关的seo知识,而且对于

【转】巧用局部变量提升javascript性能

转自:http://www.jb51.net/article/47219.htm 巧用局部变量可以有效提升javascript性能,下面有个不错的示例,大家可以参考下 javascript中一个标识符所在的位置越深,它的读写速度也越慢.因此,函数中读写局部变量总是最快的,而读写全局变量通常是最慢的.一个好的经验法则是:如果某个跨作用域的值在函数中被引用一次以上,那么就把它存储到局部变量里. 例如: 复制代码代码如下: <!-- 优化前 --> <script type="tex

如何提升爬虫性能相关的知识点

如何提升爬虫性能相关的知识点 爬虫的本质是伪造socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个url结束后才能继续下一个,这样我们就会发现效率非常低. 原因:爬虫是一项IO密集型任务,遇到IO问题就会阻塞,CPU运行就会停滞,直到阻塞结束.那么在CPU等待组合结束的过程中,任务其实是呈现出卡住的状态.但是,如果在单线程下进行N个任务且都是纯计算的任务的话,那么该线程对cpu的利用率仍然会很高,所以单线程下串行多个计算密集型任务