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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
PHP 数组实例说明
Aug 18 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
php实现转换html格式为文本格式的方法
May 16 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
使用 MySQL Date/Time 类型
2008/03/26 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
vuex存储token示例
2019/11/11 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
Python实现快速排序的方法详解
2019/10/25 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
优秀干部获奖感言
2014/01/31 职场文书
党校培训自我鉴定
2014/02/01 职场文书
写自荐信的注意事项
2014/03/09 职场文书
学校校庆演讲稿
2014/05/22 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
宣传委员竞选稿
2015/11/19 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
Golang全局变量加锁的问题解决
2021/05/08 Golang