`
hongtoushizi
  • 浏览: 376667 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

新一代 PHP 加速插件 Zend Opcache

    博客分类:
  • php
阅读更多

目前PHP的缓存插件一般有三个:APC、eAccelerator、XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache( http://pecl.php.net/package/ZendOpcache ),功能和前三者相似但又有少许不同,缓存速度据说比它们更快.

主 要原理: 就是把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
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install



如果显示Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/ 表示安装完成,下面要修改php的配置文件让它生效

 

在 php.ini 的最后面加入下面几行

zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/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();信息后, 即可找到Zend OPcache信息. 如图片


 

 

在phpinfo()信息中, 目前来看有两条信息犹为重要:

Cache hits     (高级缓存命中)
Cache misses  (高级缓存未命中)


在这两条信息中即可观察缓存运行情况, 一目了然
高速缓存带来哪些优化呢? 对代码运行有多大帮助?

我们做个测试, 验证一下什么是opcache.

<?php
  echo 'opcache';
?>


这是一段非常简单的php代码, 请保存为demo.php文件然后访问, 随意刷新, Cache hits数值会不停地增加, 说明起作用了,

然后你修改代码为:

<?php
   echo 'cache new';
?>


再刷新demo.php, 应该可以看到效果, 打印出来的值仍然是opcache, 即源码被缓存了, 它不再解析demo.php文件, 试着不停地刷新, 检测多少秒后才更新.
可设置:

opcache.force_restart_timeout=180

的时间来控制更新速度.

 

这就类似于web项目中的静态文件缓存一下, 比如我们加载一个网页, 浏览器会自动帮我们把jpg, css缓存起来, 唯独php没有缓存, 每次均需要open文件, 解析代码, 执行代码这一过程, 而opcache即可解决这个问题, 代码会被高速缓存起来, 提升访问速度.

如果嫌phpinfo()不直观可以装个PHP文件查看,地址 https://g ist.github.com/JingwenTian/9508141,把上面的代码保存为一个php文件放到你的网站目录下面打开就可以看到.

个人建议: 本地环境非必要情况下不要开启opcache, 服务器上可以开启, 必竟不是天天更新. 缓存起来有它的历史意义.

 

参考阅读:

http://blog.sina.com.cn/s/blog_5f5a3dff0101gf9e.html

http://www.oschina.net/question/998019_110792

http://cnzhx.net/blog/zendopcache-accelerate-php/

http://www.vpser.net/opt/apc-eaccelerator-xcache.html

 

 

转载自: http://www.jingwentian.com/t-173

 

 

分享到:
评论

相关推荐

    ZendOpcache.zip

    大家知道目前PHP的缓存插件一般有三个:APC、eAccelerator、XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没...

    PHP配置ZendOpcache插件加速

    以上就是关于PHP配置ZendOpcache插件以加速的详细知识点。希望本文的内容能够帮助到需要提升PHP应用性能的读者,并给大家提供一定的参考学习价值。如果读者在配置过程中遇到任何问题,可以查阅相关文档或咨询专业...

    laravel安装zend opcache加速器教程

    在本文中,我们主要讲解了如何在Laravel项目中安装Zend OPcache加速器,以提升PHP执行效率和降低页面加载时间。Zend OPcache是PHP的一种性能优化扩展,它通过缓存预编译的PHP脚本字节码来提高PHP程序的执行速度。在...

    opcache-gui:Zend OPcache的干净,有效和响应式界面

    一个干净的响应式界面,用于Zend OPcache信息,显示统计信息,设置和缓存的文件,并提供信息的实时更新。 该接口使用ReactJS和Axios,适用于现代浏览器,并且至少需要PHP 7.1。 如果您喜欢该软件或对它有所帮助,...

    php_memcache.dll Or php_opcache.dll For PHP5.3.27

    zend_extension = "D:\PHP\ext\php_opcache.dll" ; 这里一定要用绝对路径 opcache.enable = 1 opcache.enable_cli = 1 opcache.memory_consumption = 256 opcache.interned_strings_buffer = 8 opcache.max_...

    ansible-role-zend-opcache:Ansible 角色

    Ansible 角色:Zend OpCache [ ]( 角色:Zend OpCache&language=&tags=github&category=software) 安装和配置 Zend OpCache 的 Ansible 角色。 功能包括: Zend OpCache 及其依赖项的安装自动配置安装使用ansible-...

    PHP 的Opcache加速的使用方法

    4. 不建议长期使用老版本的Opcache,因为新版本的PHP已经内嵌了Opcache并对其进行了优化和更新。 5. 在生产环境中,不建议将Opcache相关的开源项目直接放在Web服务根目录下,因为这样可能会造成安全隐患。这些工具...

    opcache-dashboard:正确设置并使用此仪表板监视Zend OPcache,它将帮助您检查内存,命中和状态,配置以获得最佳性能(在缓存已满,验证等时警告您)以及一键重置一个或所有脚本

    正确设置并使用此仪表板监视Zend OPcache,它将帮助您检查内存,命中和状态,配置最佳性能(在缓存已满,验证等时警告您)以及一键重置一个或所有脚本。 安装 作曲家的安装: composer require carlosio/opcache-...

    PHP zend模块

    2. **Zend OPcache**:这是 PHP 5.5 及以上版本内置的一个扩展,它将 PHP 脚本预编译为字节码并存储在内存中,从而减少了每次请求时的解析和编译时间,显著提升了 PHP 应用的响应速度。 **三、配置与使用** 配置 ...

    zend optimizer插件安装

    Zend Optimizer是PHP应用中的一个关键插件,特别是在使用旧版本的PHP时,它对于提升性能和处理某些加密的PHP代码至关重要。本文将详细介绍在Windows平台上安装和配置Zend Optimizer的步骤。 首先,我们需要理解...

    为PHP5.4开启Zend OPCode缓存

    Zend OPcache是在PHP5.5版本中开始内置的功能,但它的前身,Zend Optimizer+,可以在PHP5.2至PHP5.4版本中手动安装使用。 开启PHP5.4的Zend OPCode缓存步骤涉及到了编译安装Zend Optimizer+扩展。具体步骤包括使用...

    php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析

    主要介绍了php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法,结合实例形式分析了php加速缓存器opcache,apc,xcache,eAccelerator的基本功能、原理及扩展配置相关操作技巧,需要的朋友可以参考下

    启用OPCache提高PHP程序性能的方法

    说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认...这个PHP加速插件的主要原理就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服

    ansible-wordpress:用于设置 WordPress、Apache、PHP + Zend OpCache、MySQL、自动 MySQL 备份、Memcached、Monit、Git、UFW 的 Ansible 手册

    Ansible playbook,用于设置 WordPress、Apache、PHP + Zend OpCache、MySQL、自动 MySQL 备份、Memcached、Monit、Git、UFW。 功能包括: 安装任何 WordPress 版本 wp-config.php 的配置 为 wp-config.php ( ) ...

    munin-php-opcache:Munin插件,用于监视PHP OPcache

    Munin插件,用于监视PHP OPcache 要求 php_opcache_插件是为Munin v1.4.0 +监视系统制作的。 Munin主页可以在以下位置找到: : 文献资料 项目主页: : 安装及使用 将文件php_opcache.php复制到Web服务器可访问...

    Magento-OpCache, Magento后端的OpCache ( Zend优化器) 控制面板 ( GUI ).zip

    Magento-OpCache, Magento后端的OpCache ( Zend优化器) 控制面板 ( GUI ) opcache用于Magento后端的OpCache 控制面板 。基于:https://gist.github.com/ck-on/4959032 重新检查缓存重置缓存编译目录应用程序和lib中...

    php-5.2.6+ZendOptimizer3.3 IIS7 PHP,zend配套安装文件

    然而,需要注意的是,Zend Optimizer不兼容PHP 5.3及以上版本,因此对于升级PHP版本的计划,这个组件必须被替换为其他兼容的解决方案,如Zend Guard Loader或OpCache。 【与IIS7的集成】 IIS(Internet ...

    docket-cache:以纯PHP代码存储的持久对象缓存,可通过OPcache后端加速缓存

    该插件无需使用和反PHP对象来存储到平面文件中,而是通过将对象转换为纯PHP代码来存储数据,从而在启用Zend OPcache的情况下实现了更快的数据检索和更好的性能。 请参阅以获取完整说明。 文献资料 要通过命令行...

Global site tag (gtag.js) - Google Analytics