性能提升原理:减少文件解析的时间。
我们都知道,程序要运行,得有一个编译或者解析的过程,编译或解析之后的代码才是机器可以运行的。
而 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%。