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数组实例总结与说明
Aug 23 PHP
PHP If Else(elsefi) 语句
Apr 07 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
php在linux下检测mysql同步状态的方法
Jan 15 PHP
php中Snoopy类用法实例
Jun 19 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
phalcon框架使用指南
Feb 23 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 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
Protoss兵种对照表
2020/03/14 星际争霸
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
PHP函数超时处理方法
2016/02/14 PHP
PHP文件操作详解
2016/12/30 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
python 6行代码制作月历生成器
2020/09/18 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
python re模块常见用法例举
2021/03/01 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
EJB3推出JPA的原因
2013/10/16 面试题
秋季运动会活动方案
2014/02/05 职场文书
治安消防安全责任书
2014/07/23 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
安全员岗位职责范本
2015/04/11 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
golang连接MySQl使用sqlx库
2022/04/14 Golang
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers