php7 opcache

说明:

   网站访问速度并不仅仅是由缓存技术来决定的,而跟网络,硬件,架构(数据库,负载均衡等)都有关系,此处我们仅仅讨论其中的代码加载层。即opcache,另外opcache第一次生成的时候也不会快和普通的加载方式一样。


php加速原理(假定服务器软件是apache):

a.   apache 接收 请求

b.  apache 将请求传递给mod_php  模块

c.   mod_php  定位磁盘中的文件并加载到内存中去

d.   编译源码生成 opcode  树

f.    mod_php  执行opcode 字节树(此处就是加速的根本原因)

opcache 设置参数

;加载opcache 模块
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/opcache.so 

;开启  opcache模块
opcache.enable=1 

;开启命令模式,针对php  cli运行方式的时候有效
opcache.enable_cli=1

;如果缓存处于非激活状态,等待多少秒之后计划重启
opcache.force_restart_timeout=3600

;共享内存大小,以兆字节为单位 ,设置为1M
opcache.memory_consumption=1024

;控制优化级别的二进制位掩码
opcache.optimization_level=1      

;用来存储预留字符串的内存大小,以兆字节为单位 ,这个地方其实php使用了一种叫做字符串驻留的技术来改善性能。
例如: 代码中有1000次字符串‘hello’,在php内部只会在第一次使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串。而其它999次都会直接使用这个内存区域的字符串,这个可以很大程度上提高性能
opcache.interned_strings_buffer=8 

;OPcache 哈希表中可存储的脚本文件数量上限。 真实的取值是在质数集合 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 中找到的第一个大于等于设置值的质数。 设置值取值范围最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。 即,并不是有多少php文件就缓存多少文件的,缓存的文件数量是有限制的
opcache.max_accelerated_files=4096

;在指定周期中去检查代码是否有改变,有则重新生成opcode
opcache.revalidate_freq=60

;快速重启,针对fpm启动模式有效
opcache.fast_shutdown=1

;是否保存注释
opcache.save_comments=0

实例对比开启opcache加速和没有开启opcache的区别

1.开启opcache加速是的测试数据

php7 opcache_第1张图片
php7 opcache_第2张图片


2.关闭opcache的测试数据

php7 opcache_第3张图片
php7 opcache_第4张图片


对比结果:

1.首先我们看ab测试的数据中可以看出,开启了opcache后 ,网站的吞吐量是没有开启的33倍左右

接下来我们对比另外一组数据------浏览器的加载时间结果

没有开启opcache



开启了opcache  

开启了opcache的访问速度和没有开启的访问速度差   260-235 = 25ms .   此时文档的大小还只有  6.1kb如果大一点的文档,那么相差的时间会更多

你可能感兴趣的:(php7 opcache)