新一代 PHP 加速插件 Zend Opcache <转>
注: 由于原链接已不存在, 所以我把图片重新整理了一下, 以便看起来更加直观
笔者注: 1> PHP 性能提升之 PHP NG => php next generation
wiki: https://wiki.php.net/phpng
说明: http://www.oschina.net/news/53677/php-5-7-twice-as-fast
2> hhvm (php 虚拟机)
http://www.oschina.net/news/50183/hhvm-3-0-?from=20140330
http://www.oschina.net/news/50112/how-hhvm-improve-php-performance?p=2
http://www.tuicool.com/articles/jeiQZzn
参考: http://www.oschina.net/question/998019_110792
http://cnzhx.net/blog/zendopcache-accelerate-php/
转自 http://www.laogui.com/Zend-Opcache
大家知道目前PHP的缓存插件一般有三个:APC、eAccelerator、XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没测试过)。
这几个PHP加速插件的主要原理都相同,就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们的效率是显而易见的,像drupal这种庞大的CMS,每次打开一个页面要调用数十个PHP文件,执行数万行代码,效率可想而知,在安装APC等加速器后打开页面的速度明显加快。
Zend Opcache 已经集成在了PHP 5.5里面,编译安装PHP5.5的时候加上--enable-opcache就行了。但也支持低版本的 PHP 5.2.*, 5.3.*, 5.4.*,未来会取消对5.2的支持,下面是我在PHP 5.4下的安装方法:
依次执行下面的命令
wget http://pecl.php.net/get/zendopcache-7.0.2.tgz
tar xzf zendopcache-7.0.2.tgz
cd zendopcache-7.0.2
phpize
如果找不到phpize 的话自己找PHP路径,我的在/usr/local/php/bin/phpize,下面这行也要按你的php.ini路径自行修改
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
如果显示Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 表示安装完成,下面要修改php的配置文件让它生效
在 php.ini 的最后面加入下面几行
zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
128意思是给它分配128M内存,然后重启apache,用phpinfo查看是否生效,显示下面的信息就说明生效了
在phpinfo页面的下面可以看到的运行状态
如果嫌这个不直观可以装个PHP文件查看,地址在https://gist.github.com/ck-on/4959032,把上面的代码保存为一个php文件放到你的网站目录下面打开就可以看到:
命中率95%。
Zend Opcache因为最近才出来,现在还是测试版,相信在未来几年会越来越流行,现在真没多少人用。目前测试来看还比较稳定,我已经在 vbulletin论坛下运行了几天,不过没看出和APC、xcache有啥区别,只是最近我的APC老让apache崩溃(可能是apache和php版本太新的原因),想换个试试,毕竟Zend Opcache和APC都是php官方的,值得信赖。
最新文章
- BW顾问必需要清楚的:时间相关数据建模场景需求分析
- jxl读数据库数据生成xls 并下载
- ld: library not found for -lPods-AFNetworking
- Nodejs路由之间的数据传递
- WTL在Win8.1系统WM_DROPFILES无法响应的解决办法
- poj 2449(A*求第K短路)
- ThinkPHP学习笔记 实例化模型的四种方法
- Java - 注解 (Annotation)
- poj2163
- 记2014“蓝桥杯全国软件大赛&;quot;决赛北京之行
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- oralce 查看是否启动 登陆 创建用户 常用命令小记
- DataTables warning : Requested unknown parameter &#39;0&#39; from the data source for row 0错误
- CF980E
- Socket 网络通信
- js 原生图片上传
- xcode工程编译错误:No architectures to compile for
- 系统构架篇之基于SSDB的二级缓存
- javascript 面向对象编程(工厂模式、构造函数模式、原型模式)
- javaweb之jsp标签
热门文章
- mysql数据类型——枚举enum(‘F’,&#39;M&#39;)
- yii 验证用户名是否存在 	 				array(";name";,";unique";,&#39;message&#39;=>;&#39;用户名已经存在&#39;),
- map和lambda
- seajs打包部署工具spm的使用总结
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题 swfUpload多文件上传
- 14.5.3 Locks Set by Different SQL Statements in InnoDB
- 使用 libevent 和 libev 提高网络应用性能
- hiho #1079 : 离散化
- COJ 0047 20702最大乘积
- 【转】Jollen 的 Android 教學,#12: 如何建立選單 Menu