php提升性能之opcache

首先说下编译和解释,对于编译而言,其编译和执行是分开的,先需要将我们写的代码文件编译成电脑可识别机器码,保存成二进制文件,然后在运行时直接执行机器语言,速度很快;而解释器是在程序运行时,逐条解释翻译成机器语言,然后在执行,所以运行速度是慢的。

PHP是解释性语言,在运行PHP时,翻译器并不是直接生成机器语言,而是生成中间码opcode,然后在由专门的解析器将中间码opcode翻译成机器语言执行,注意opcode是不能执行的,必须由专门的解析器给编译。PHP用的解析器是zend,opcache的作用就是将opcode缓存到共享内存中,进而加速PHP脚本的运行速度。opcache在PHP5.5之后可以直接启用。

如何开启opcache和一些常用参数:

修改配置文件即可:

;opcache

[Zend Opcache]

zend_extension=/www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/opcache.so

opcache.enable = 1

opcache.memory_consumption=128

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000

opcache.revalidate_freq=60

opcache.fast_shutdown=1

opcache.enable_cli=1

逐一解释一下:

zend_extension opcache的扩展地址

opcache.enable  1 开启  0 关闭

opcache.memory_consumption  共享内存大小  以M为单位

opcache.interned_strings_buffer  存储临时字符串的大小 以M为单位 PHP使用字符串驻留的机制提升性能

opcache.max_accelerated_file  可存储的所有PHP文件的数量  

opcache.revalidate_freq  每隔多少秒 检查更新脚本 单位为秒  该参数必须是开启 opcache.validate_timestamps才生效 , 默认是开启的

opcache.fast_shutdown 设置为1 启用快速关闭 作用是能在本次请求结束后 快速的回收变量释放内存 , 从而加速PHP的响应和回收速度 , 能够快速的执行下次请求响应。

opcache.enable_cli  cli下的PHP使用opcache

然后使用ab测试一下缓存之后的对比:

ab -n100 -c100 http://***/      并发100 请求100

没开启之前:


开启之后:


我们主要看 time taken for tests 和 requests per second这两个参数:

time taken for tests 记录所有请求一共花费多长时间

requests per second  记录吞吐率 即每秒响应成功的最大次数

。。 差距还是很明显的 , PHP远非所看到的如此简单 , 听人说语言知识一种工具 , 语言本身并无差别,重要的是思想理解和你怎么去用 , 我热爱编程 , 并且心怀梦想 , 以后的道路任重道远 , 希望自己不忘初心 , 砥砺前行 。

你可能感兴趣的:(php提升性能之opcache)