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


Posted in PHP onMarch 02, 2020

本文实例讲述了php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法。分享给大家供大家参考,具体如下:

一、opcache

opcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。

PHP 5.5.0 及后续版本中已经绑定了 opcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用PECL扩展中的 opcache 库。

windows下的php扩展下载地址:

http://windows.php.net/downloads/pecl/releases/

打开php.ini文件,找到[opcache]

; dll地址
extension=php_opcache.dll
; 开关打开
opcache.enable=1
; 开启CLI
opcache.enable_cli=1
; 可用内存, 酌情而定, 单位为:Mb
opcache.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

二、APC

Alternative PHP Cache (APC) 是一个开放自由的PHP opcode 缓存。它的目标是提供一个自由、 开放,和健全的框架用于缓存和优化PHP的中间代码。

下载apc扩展dll,选择你对应的PHP版本

http://windows.php.net/downloads/pecl/releases/apc/

把下载的php_apc.dll放入php的ext扩展目录下。

打开php.ini文件,配置如下:

[apc]
extension=php_apc.dll
apc.enabled=1
; 共享内存块的数目
apc.shm_segments=1
; 共享内存块的大小(单位:MB)
apc.shm_size=64
; 优化级别,更高的值则使用更主动的优化
apc.optimization=1
; 源文件的数目,不确定设置为0
apc.num_files_hint=0
; 缓存条目在缓冲区中允许逗留的秒数
apc.ttl=7200
; 针对每个用户缓存条目在缓冲区中允许逗留的秒数
apc.user_ttl=7200
; 缓存条目在垃圾回收表中能够存在的秒数
apc.gc_ttl=7200
; 文件写锁
apc.write_lock=on

三、xcache

xcache是一个开源的 opcode 缓存器/优化器。

下载xcache,选择对应PHP版本的xcache

http://xcache.lighttpd.net/pub/Releases/

把php_xcache.dll放到php的ext目录下。

打开php.ini,配置如下:

[xcache-common]
extension = php_xcache.dll
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
xcache.admin.pass = "md5后你的密码"
[xcache]
; 选择底层内存共享实现方案
xcache.shm_scheme = "mmap"
xcache.size = 128M
; 设置为CPU数
xcache.count = 1
; 只是个参考值
xcache.slots = 8K
; 缓存时间
xcache.ttl = 1200
; 垃圾回收的时间间隔
xcache.gc_interval = 1200
; 同上,针对变量缓存设置
xcache.var_size = 4M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 1200
 
; 变量最大缓存时间
xcache.var_maxttl = 7200
xcache.var_gc_interval = 1200
xcache.var_namespace_mode = 0
xcache.var_namespace = ""
xcache.readonly_protection = Off
; 对于win系统,这里不是文件路径
xcache.mmap_path = "xcache"
xcache.coredump_directory = ""
xcache.coredump_type = 0
xcache.disable_on_crash = Off
xcache.experimental = Off
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
xcache.coverager = Off
xcache.coverager_autostart = On
xcache.coveragedump_directory = ""

四、eAccelerator

eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。

下载eAccelerator

http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds

把下载到的eAccelerator_ts.dll放到php的ext目录下。
打开php.ini,配置如下:

[eAccelerator]
extension="eAccelerator_ts.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="设置缓存目录"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.log_file = "设置日志文件"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
xajax写的留言本
Nov 25 PHP
PHP4中session登录页面的应用
Jul 25 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
php模拟post提交数据的方法
Feb 12 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
laravel学习教程之存取器
Jul 30 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 #PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 #PHP
PHP中关于php.ini参数优化详解
Feb 28 #PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 #PHP
php 的多进程操作实践案例分析
Feb 28 #PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 #PHP
php的无刷新操作实现方法分析
Feb 28 #PHP
You might like
56.com视频采集接口程序(PHP)
2007/09/22 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
chrome调试javascript详解
2015/10/21 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
Python 类的继承实例详解
2017/03/25 Python
Python生成密码库功能示例
2017/05/23 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
终端业务员岗位职责
2013/11/27 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
业务员岗位职责
2015/02/03 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
MySQL的Query Cache图文详解
2021/07/01 MySQL
浅析Python OpenCV三种滤镜效果
2022/04/11 Python
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers
mysql如何查询连续记录
2022/05/11 MySQL