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 相关文章推荐
php中mysql模块部分功能的简单封装
Sep 30 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
php json与xml序列化/反序列化
Oct 28 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
Mar 01 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 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
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
详解vue中组件参数
2018/07/09 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
python pygame实现2048游戏
2018/11/20 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
J2EE相关知识面试题
2013/08/26 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
自我鉴定范文300字
2013/10/01 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
优秀会计求职信
2014/07/04 职场文书
2014年妇女工作总结
2014/12/06 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
学籍证明模板
2015/06/18 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
幼儿体育课教学反思
2016/02/16 职场文书