聊聊zend opcache的配置项

opcache.revalidate_freq

这个选项用于设置缓存的过期时间(单位是秒),当这个时间达到后,opcache会检查你的代码是否改变,如果改变了PHP会重新编译它,生成新的opcode,并且更新缓存。

值为“0”表示每次请求都会检查你的PHP代码是否更新(这意味着会增加很多次stat系统调用,译注:stat系统调用是读取文件的状态,这里主要是获取最近修改时间,这个系统调用会发生磁盘I/O,所以必然会消耗一些CPU时间,当然系统调用本身也会消耗一些CPU时间)。可以在开发环境中把它设置为0。

opcache.validate_timestamps

当这个选项被启用(设置为1),PHP会在opcache.revalidate_freq设置的时间到达后检测文件的时间戳(timestamp)。

如果这个选项被禁用(设置为0),opcache.revalidate_freq会被忽略,PHP文件永远不会被检查。这意味着如果你修改了你的代码,然后你把它更新到服务器上,再在浏览器上请求更新的代码对应的功能,你会看不到更新的效果,你必须得重新加载你的PHP(使用kill -SIGUSR2强制重新加载)。

opcache.max_accelerated_files

这个选项用于控制内存中最多可以缓存多少个PHP文件。这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和。

你可以运行“find . -type f -print | grep php | wc -l”这个命令来快速计算你的代码库中的PHP文件数。

opcache.memory_consumption

这个选项的默认值为64MB,可以通过调用opcachegetstatus()来获取opcache使用的内存的总量,如果这个值很大,你可以把这个选项设置得更大一些。

opcache.interned_strings_buffer

PHP使用了一种叫做字符串驻留(string interning)的技术来改善性能。例如,如果你在代码中使用了1000次字符串“foobar”,在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串,其他的999次使用都会直接指向这个内存区域。这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中,如果设置了这个选项,那么它将会在所有的php-fpm进程中共享。在比较大的应用中,这可以非常有效地节约内存,提高应用的性能。

这个选项的值是以兆字节(megabytes)作为单位,如果把它设置为16,则表示16MB,默认是4MB。

opcache.fast_shutdown

它的作用是在单个请求结束时提供一种更快速的机制来调用代码中的析构器,从而加快PHP的响应速度和PHP进程资源的回收速度,这样应用程序可以更快速地响应下一个请求。把它设置为1就可以使用了。

相关推荐:
在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在命令行窗口中不能正确显示内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。 如果想正确显 …
有时候为了方便,我们可能通过搜索功能搜索某软件的相关的内容,直接全删就=卸载了,其实有时候是不行的,特别是安装时或启动时向我们索要过权限的。 这些软件包含哪些呢,如自带了驱动的,像boom音频改善 …
如果碰巧你使用的是官方tar包,那么恭喜你,你make的时候可能会遇到如下错误,很多网友都会遇到的。 ../src/.libs/libeglib.a(libeglib_la-gunicode.o): In function `monoeg_g_get_charset':/root/mono/eg …
Google 在 2017 年宣布了对 SHA-1 哈希算法的首个成功碰撞攻击。 所谓碰撞攻击是指两个不同的信息产生了相同的哈希值。 在 Google 的研究中,攻击所需的计算量十分惊人,用 Google 说法,它用了 6,500 年的 …
在Excel以前的版本中,可以通过“高级筛选”来删除重复记录,在Excle 2007中不但保留了“高级筛选”这个功能,而更为值得注意的是Excel 2007增加了一个“删除重复项”按钮,从而这项操作变得更加方便、快捷。 首 …
拿起手机扫一扫即可带走我!