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 相关文章推荐
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
培养自己的php编码规范
2015/09/28 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
在JS中如何调用JSP中的变量
2014/01/22 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python os模块简单应用示例
2019/05/23 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
python如何将图片转换素描画
2020/09/08 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
入学生会自荐书范文
2014/02/05 职场文书
《凡卡》教学反思
2014/04/09 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
2014年营业员工作总结
2014/11/18 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python