PHP 开启 Zend Opcache

因缘

PHP 7 已经很快了,但是 Laravel 开发的程序,有时候一个请求居然要一秒以上。解决办法是开启 Zend Opcache,效果还算明显,可以把原先1秒以上的请求,降低到200毫秒左右。


Zend Opcache 介绍

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的。


安装

PHP 7 自带了php_opcache.dll,将 zend_extension=opcache 复制到 php.ini 文件中的 [php] 区段下面。


php.ini 配置文件设置

[opcache]
; 启动操作码缓存
opcache.enable=1
; 针对支持CLI版本PHP启动操作码缓存 一般被用来测试和调试
opcache.enable_cli=1
; 共享内存大小,单位为MB
opcache.memory_consumption=200
; 存储临时字符串缓存大小,单位为MB,PHP5.3.0以前会忽略此项配置
opcache.interned_strings_buffer=8
; 缓存文件数最大限制,命中率不到100%,可以试着提高这个值
opcache.max_accelerated_files=10000
; 一定时间内检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 单位为秒
opcache.revalidate_freq=2


检查 是否配置成功

执行 php -r "var_dump(function_exists('opcache_get_status'));"


或者执行 phpinfo 函数




参考:

https://www.jianshu.com/p/582b683a26a2

https://www.php.net/manual/zh/book.opcache.php

修改时间 2016-08-25

真诚赞赏,手留余香
赞赏
随机推荐
函数限流,防止多次触发函数 Debounce 和 Throttle 的原理及实现
Angular 2.0 五分钟教程
GPS坐标转换经纬度及换算方法
Koa.js 中间件 koa-body
Apache如何解决跨域资源访问
CentOS 8 安装 Apache 和 PHP
gyp WARN EACCES user "nobody" does not have permission to access the dev dir
Div保持高宽比
通过JS语句判断WEB网站的访问端是电脑还是手机
Photoshop 抠图技巧笔记