关于 opcache 带来多少性能及开发过程如何关闭

opache 带来多少性能?

通过我的观察,cpu 的影响不太明显,但 内存 的影响是明显的:

关闭 opache :

2021/06/02知识点小结

2021/06/02知识点小结

开启 opache

2021/06/02知识点小结

2021/06/02知识点小结

对 opcache 我的理解不多,应该是和 php-fpm 进程的数量有关,每个请求都会创建一个 fpm 进程,占用几十兆的内存,而 opcache 能减少不断创建fpm 进程从而减小了内存占用。opcache = op + cache。

项目中的开启和关闭

线上阶段开启,而开发阶段则应该关闭,否则修改的代码不会立即生效。

在项目的根目录,通常都有一个 user.ini,关闭 opcache,添加一行 opcache.enable=0 即可。

亦或使用 laravelcommand 运行你的测试代码,从而不必关闭 opcache

php
本作品采用《CC 协议》,转载必须注明作者和本文链接
welcome come back
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 1

如果是文件笔记多的框架开启opcache,并发时回减少cpu的压力。opcache缓存的结点是 require 等方式。这样就不用每次fpm来都去require文件,同时解析对应的php文件。这样可以减少文件解析带来的压力。但是像 laravel/symfony 中 .env 的引用是直接分析的文件如果不用框架或者composer自带的一些优化方式,是无法载入opcache。这种文本文件,可以生成 env.php 变成 require引入也可以加载到opcache。 开发环境中除了直接更改 .ini 。也可以根据 环境变量在框架运行时 使用 ini_set 去开启关闭 opcahce。 如果不使用docker 之类的以打包形式发布线上的话,我们之前是发布代码后请求一个同机器提供的内网接口,也是走php-fpm的,这个接口执行opcache_clean 这样就可以在代码稳定后清除原有的缓存。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
95
粉丝
24
喜欢
156
收藏
347
排名:324
访问:2.9 万
私信
所有博文
社区赞助商