启用OPCache提高PHP程序性能的方法
php  /  管理员 发布于 4年前   246
说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的)。对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法。 opcache是Zend Optimizer编译到php环境中的名字,意思即优化缓存。Zend OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销。 这个PHP加速插件的主要原理就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们的效率是显而易见的。 在 PHP 5.5及以后的版本中 OpCache 已内建该模块,在编译安装php时使用 --enable-opcache 即可在以后的开发工作中正常使用Opcache了。 (1)在命令行下可通过如下命令检查是否已经安装了OPcache: 有结果则代表已安装了。 (2)安装OPCache模块 如果你的php环境没有安装该模块,也可以通过如下方法进行安装: 依次执行下面的命令 (如果不知道 phpize 在哪里的话可以通过 find 命令进行查找,也可以找到PHP路径,通常是在一起的,我的就在/alidata/server/php/bin/phpize,下面这行也要按你的php.ini路径自行修改) 如果显示Installing shared extensions: /alidata/server/php/lib/php/extensions/no-debug-zts-20100525/ 则表示安装成功了。 (3)开启OPCache模块支持 找到php.ini文件,在文件末尾加上如下代码(如果已经存在[opcache]这个标签了,则只需在这个标签下做相应的添加或者修改): 添加完毕重启apache或者nginx服务器,打开phpinfo页面看看是否已经生效,如果看到如下信息则代表已经配置成功了。 (4)功能测试以及注意事项 在phpinfo()信息中, 目前来看有两条信息犹为重要: 通过这两条信息中即可观察缓存运行情况。 我们做个测试,验证一下什么是opcache,新建包含如下代码的一个文件: 这是一段非常简单的php代码,请保存为demo.php文件然后访问,随意刷新,Cache hits数值会不停地增加,说明起作用了。 然后你修改代码为: 再刷新demo.php,应该可以看到效果,打印出来的值仍然是 hello opcache,即源码被缓存了,它不再解析demo.php文件。 那多少秒之后其结果才会变为 hello phpernote.com 呢?这里可通过设置: 的时间来控制更新速度,这里的单位是秒,即180秒后重新编译一次源php编码。 这就类似于web项目中的静态文件缓存一下,比如我们加载一个网页,浏览器会自动帮我们把jpg,css缓存起来,唯独php没有缓存,每次均需要open文件,解析代码, 执行代码这一过程,而opcache即可解决这个问题,代码会被高速缓存起来,提升访问速度。 所以当改变PHP文件代码后,并不能立即看到效果,这视 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家的支持。如果你想了解更多相关内容请查看下面相关链接php -m | grep "OPcache"
wget http://pecl.php.net/get/zendopcache-7.0.2.tgztar xzf zendopcache-7.0.2.tgzcd zendopcache-7.0.2phpize
./configure --with-php-config=/usr/local/php/bin/php-configmakemake install
[opcache]; dll地址zend_extension=php_opcache.dll; 开关打开opcache.enable=1; 开启CLIopcache.enable_cli=1; 可用内存, 酌情而定, 单位为:Mbopcache.memory_consumption=128; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)opcache.interned_strings_buffer=8; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值opcache.max_accelerated_files=10000; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒opcache.revalidate_freq=1; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高opcache.fast_shutdown=1; 不保存文件/函数的注释opcache.save_comments=0
echo 'hello opcache';
echo 'hello codetc.com';
opcache.force_restart_timeout=180
opcache.revalidate_freq
的更新周期而定,所以建议在项目更新执行自动化脚本利用opcache_reset()
函数自动重置opcache。OPcache总共提供了如下几个函数:您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号