PHP优化-通过OPcache让你的应用运行速度飞起来

简介:什么是Opcache?如何使用OPcache?Opcache优化配置

什么是Opcache?

每一次执行 PHP 脚本的时候,该脚本都需要被编译成字节码,而 OPcache 可以对该字节码进行缓存,这样,下次请求同一个脚本的时候,该脚本就不需要重新编译,这极大节省了脚本的执行时间,从而让应用运行速度更快,同时也节省了服务器的开销。

如何使用OPcache?

首先,我们需要确保在服务器上安装了 OPcache,从 PHP 5.5 开始,OPcache 已经成为 PHP 核心的一部分,基本上不需要手动去安装这个扩展。

当然,如果不放心,可以通过查看php -m|grep op命令查看是否有opcache扩展或者同过phpinfo()函数打印查看是否安装,脚本代码如下:

<?php
phpinfo();

该脚本会显示所有 PHP 安装的扩展。在页面搜索 “Opcache”,如果找到,证明已经安装。如果没有,则需要自己去安装。

接下来,我们需要在 PHP 的配置文件中启用 OPcache(默认是关闭的):

opcache.enable=1

下面我们继续对 Opcache 进行一些优化配置:

opcache.memory_consumption=512
// 这个配置表示你想要分配给 OPcache 的内存空间(单位:MB),设置一个大于 64 的值即可。

opcache.interned_strings_buffer=64
// 这个配置表示你想要分配给实际字符串的空间(单位:MB),设置一个大于 16 的值即可。

opcache.max_accelerated_files=32531
// 这个配置表示可以缓存多少个脚本,将这个值尽可能设置为与项目包含的脚本数接近(或更大)。

opcache.validate_timestamps=0
// 改配置值用于重新验证脚本,如果设置为 0(性能最佳),需要手动在每次PHP代码更改后手动清除 OPcache。
// 如果你不想要手动清除,可以将其设置为 1 并通过 opcache.revalidate_freq 配置重新验证间隔,
// 这可能会消耗一些性能,因为需要每隔 x 秒检查更改。

opcache.save_comments=1
// 这个配置会在脚本中保留注释,我推荐开启该选项,因为一些库依赖于这个配置,并且我也找不出什么关闭它的好处。

opcache.fast_shutdown=0
// 快速关闭会给一个更快速清理内存的机制,不过,在我的基准测试中,更慢一些,可能这会应用带来一些性能提升,但是你需要自己去尝试。

// 所以,最终的配置优化长这样:
opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=0

你可以使用这些配置值进行实验,具体配置值取决于你的应用大小和服务器配置。

最后,保存这个配置文件并重启 Web 服务器,你的应用肯定会变得更快。

有遗漏或者不对的可以在我的公众号留言哦

编程经验共享公众号二维码

编程经验共享公众号二维码
更多内容关注公众号
Copyright © 2021 编程经验共享 赣ICP备2021010401号-1