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生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
百度地图API使用方法详解
Aug 25 PHP
php需登录的文件上传管理系统
Mar 21 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
PHP脚本自动识别验证码查询汽车违章
Dec 20 PHP
详解PHP队列的实现
Mar 14 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
PHP实现八皇后算法
2019/05/06 PHP
php给数组赋值的实例方法
2019/09/26 PHP
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
电视购物广告词
2014/03/19 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
员工加薪申请报告
2015/05/15 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js