PHP性能优化-编译级别的缓存

时间:2022-01-10 08:53:35

最近安装了 php5.6,发现有了 opcache.so扩展文件,于是,搜索了一下,
发现 zend opcache已经融入到 ph5.5以上的版本了,即兴奋,不用再去找
xcache,apc,eAccelerator 这些缓存了
PHP手册上面也说了好详细的配置文件说明,这里不再详情说明,
最好是把编译生成的 opcache.so和别的扩展放一起
基本的配置可以这样配置即可(php.ini文件)
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=100000
opcache.validate_timestamps=1
opcache.revalidate_freq=7200
以上的是基本配置,就可以使用了,具体更高级,根据实际情况,
可以修改相关参数设置,手册上面已经说得好清楚了
几乎什么事情,用得好就是如虎添冀,用不好,就是一个大坑。
所以,如果启用了,文件修改了,时间不到,还没有生效,
所以,为了立即生效,可以重新web服务,但一般这些不可取,会造成中断
opache提供了 opcache_invalidate(文件名,true),此时则立即重新编译,
opcache_reset()这个是在生成此文件前生效,如果一旦生成了,还没有
过期的,则不会生效.所以,要做到让变更的文件立即生效,可以生成一个文件,
当有更改文件时,执行一下这个文件即可

<?php
// as: change.php
opcache_reset();
opcache_invalidate('文件路径', true); // 立即重新编译,可以用绝对路径