利用PHP OPcache使Laravel应用运行速度飞起来

  介绍

本文将为大家详细介绍”利用PHP OPcache使Laravel应用运行速度飞起来”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“利用PHP OPcache使Laravel应用运行速度飞起来“能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧。

Laravel是什么

Laravel是一套简洁,优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来,它可以帮你构建一个完美的网络应用,而且每行代码都可以简洁,富于表达力。

<强>什么是OPcache

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

<强>用数字说话

我们当然很想知道到底进行了怎样的优化,尽管性能提升高度依赖于应用和服务器的配置,不过我们可以通过运行基准测试(基准)有一个大概的了解。

为此我专门准备了一个很低配置的机器:1核CPU, 1 g内存来运行Apache基准测试。我请求的是Laravel 5.4默认的欢迎页面,让10个并发请求持续访问1分钟,以下是关闭OPcache的基准测试结果:

OPcache 残疾:,10.18,requests  per 第二个

对于一个这么低配置的服务器而言,这也不算太坏,但是我们可以做得更好。开启OPcache的基准测试结果如下(使用默认OPcache配置):

Enabled  with  default 价值观:,34.52,requests  per 第二个

差距还是很大的!我们接下来对OPcache配置进行优化,基准测试的表现效果更好:

Enabled  with  optimized 价值观:,42.53,requests  per 第二个

<强>这把服了没有?

<强>听起来很牛逼,不过怎么使用呢

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

当然,如果不放心,可以通过查看phpinfo()进行确认:

& lt; PHP ?   phpinfo ();

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

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

OPcache。使=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服务器,你的应用肯定会变得更快。

利用PHP OPcache使Laravel应用运行速度飞起来