php性能提升之opcache

Posted 白桂任的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php性能提升之opcache相关的知识,希望对你有一定的参考价值。

性能提升原理:减少文件解析的时间。

我们都知道,程序要运行,得有一个编译或者解析的过程,编译或解析之后的代码才是机器可以运行的。

php 是一种解析性语言,在使用php来处理http请求的时候,每一个请求到来的时候,都需要把所有用到的文件解析一遍。

而用了 opcache 的话,解析一次就可以多次使用,而不需要每次都从硬盘读取文件,然后再解析,所以会有大幅的性能提升。

 

php -v 看看是什么版本的,然后去下载对应版本的源代码

进源代码目录下的 ext/opcache,

然后

phpize

./configure --with-php-config=/usr/local/php/bin/php-confie

make

sudo make install

 在配置文件末尾添加:(参考:一个关于Zend O+的小分享)

zend_extension=opcache.so
opcache.enable_cli=1
opcache.memory_consumption=128      //共享内存大小, 这个根据你们的需求可调
opcache.interned_strings_buffer=8   //interned string的内存大小, 也可调
opcache.max_accelerated_files=4000  //最大缓存的文件数目
opcache.revalidate_freq=60          //60s检查一次文件更新
opcache.fast_shutdown=1             //打开快速关闭, 打开这个在PHP Request Shutdown的时候
                                     //   会收内存的速度会提高
opcache.save_comments=0             //不保存文件/函数的注释

  

然后重启 fpm 就可以了。

 

具体效果:

我们可以看到,耗费时间大概少了50%。

 

  

以上是关于php性能提升之opcache的主要内容,如果未能解决你的问题,请参考以下文章

php之Opcache深入理解

PHP7开启OPcache和Swoole哪个提升更大?性能的提升对比

用Zend OPCache提高PHP的性能

转 [PHP] - 性能加速 - 开启Opcache

PHP7 opcache缓存清理问题

PHP7 opcache缓存清理问题