简介
Opcache 的前生是 Optimizer+
,它是 Zend 开发的 PHP 优化加速组件。Optimizer+ 将 PHP 代码预编译生成的脚本文件 Opcode
缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。从而加速 PHP 的执行。
正常的执行流程如下:
开启 Opcache 后的执行流程如下:
Yum 安装
php -v
yum list *opcache*
yum -y install rh-php71-php-opcache.x86_64
kill -USR2 cat `/usr/local/php/var/run/php-fpm.pid`
nginx -s reload
配置
zend_extension=opcache.so
[opcache]
;开启opcache功能
opcache.enable=1
;CLI环境下,开启opcache功能
opcache.enable_cli=1
;OPcache共享内存的大小,单位MB
opcache.memory_consumption=128
;字符串在进程间驻留科使用的内存大小,单位MB
opcache.interned_strings_buffer=8
;内存中可以缓存的文件量。200-1000000之间
;可以使用“find . -type f -print | grep php | wc -l”统计文件数
opcache.max_accelerated_files=4000
;缓存的过期时间,单位秒
opcache.revalidate_freq=60
;开启快速响应机制来调用代码中的析构器,PHP 7.2.0 开始移除
opcache.fast_shutdown=1
;开启文件更新检查,到达 revalidate_freq 时间之后会检查文件变更并更新缓存,设为0则永不检查
opcache.validate_timestamps=1
;开启缓存二进制导出文件到外部文件,位置为传入的值
opcache.file_cache=/tmp
查看是否安装成功
php -m
或
<?php phpinfo(); ?>
常用函数
// 重置所有的opcache缓存。FPM模式下生成的缓存,在CLI下不能RESET。
var_dump(opcache_reset()); //bool(true)
参考:
https://www.php.net/manual/zh/opcache.configuration.php
https://www.zybuluo.com/phper/note/1016714
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要戳这里PHP进阶架构师>>>视频、面试文档免费获取
来源:oschina
链接:https://my.oschina.net/u/4234147/blog/4270359