Code前端首页关于Code前端联系我们

如何在PHP7中启用opcode打造强大的程序性能

terry 2年前 (2023-09-25) 阅读数 49 #后端开发

鸟哥在博客中表示,提高PHP 7性能有几个技巧,第一个就是启用opcache:

别忘了启用Zend Opcache 因为 PHP7 更快,即使没有启用 Opcache。它比启用Opcache更快,所以在之前的测试期间有人没有启用Opcache

那么Opcache是​​什么?

Opcache的前身是Optimizer+,它是由PHP官方公司Zend开发的一个闭源但免费的PHP优化加速组件。 Optimizer+ 将通过预编译 PHP 代码创建的 Opcode 脚本文件缓存在共享内存中以供将来重用,从而避免花费时间从磁盘读取代码并重新编译。同时,它还使用了一些代码优化方法,使代码运行得更快。这可以加快 PHP 的执行速度。

典型的PHP执行流程如下

PHP7如何开启Opcode打造程序强悍性能

请求请求(nginx、apache、cli等)--> Zend引擎读取.php文件-->检查其字典和表达式-->解析文件-- -> 生成要执行的计算机代码(称为Opcode)-->最后执行Opcode-->响应返回

每次请求PHP脚本时,都会执行上述步骤。如果 PHP 源代码不改变,显然选项代码也不会改变。无需每次都重新创建选项代码。结合无处不在的网络缓存机制,可以缓存操作码。以后直接访问缓存的操作码不是更快吗?启用操作码缓存后的流程图如下:

PHP7如何开启Opcode打造程序强悍性能

操作码缓存的目的是防止重复编译,减少CPU和内存负载。

以下表示Opcache的安装

安装:

1。搜索opcache扩展,我的是php7.1

yum list php71*

2。安装扩展

yum install php71w-opcache.x86_64

配置:

zend_extension=
[ opcache]
;启用opcache
opcache.enable=1

;在 CLI 环境下,PHP 启用 OPcache
opcache.enable_cli=1

;OPcache 共享内存大小单位 MB
opcache.memory_conspiration=128

;PHP 使用一种称为 string interning 的技术来提高性能。例如,如果您在代码中使用字符串“foobar”1000次,PHP将仅在第一次使用时分配一个非易失性内存区域来存储该字符串,其余999次将使用该字符串。它直接指向这个内存区域。这个选项将把这个功能提升到一个新的水平 - 默认情况下这个不可变的内存池将只存在于单个 php-fpm 进程中。如果设置了该选项,它将存在于所有 php-fpm 进程中。共享。在较大的应用程序中,这对于节省内存和提高应用程序性能非常有效。
此选项的值以兆字节为单位。如果设置为16,则表示16MB。默认为 4MB
opcache.interned_strings_buffer=8

;该选项用于控制内存中可以缓存的 PHP 文件的最大数量。该选项应设置得足够大,大于项目中所有 PHP 文件的总和。
设置值范围的最小值为 200,PHP 5.5.6 之前的最大值为 100000,PHP 5.5.6 及更高版本为 1000000。这是在 200 到 1,000,000 之间。
opcache.max_accelerated_files=4000

;设置缓存过期时间(以秒为单位)。如果为0,则每次都检查一次。
=60

;它的字面意思是“能够更快地关闭”。它的作用是提供一种更快的机制,在单个请求结束时调用代码中的析构函数,从而加快PHP的响应速度并回收PHP进程资源,以便应用程序可以更快地响应下一个请求。设置为 1 以使用此机制。
opcache.fast_shutdown=1

;如果启用(设置为 1),OPcache 将在设置的秒内检查文件的时间戳,以查看脚本是否是最新的。
如果禁用此选项(设置为 0),它将被忽略并且 PHP 文件永远不会被检查。这意味着如果你改变了你的代码,然后在服务器上更新,然后在浏览器中请求更新代码对应的功能,你将看不到更新的效果
我们强烈建议你在生产环境设为0。更新代码后,顺利重启PHP和Web服务器。
opcache.validate_timestamps=0

;启用 Opcache 文件缓存(实验性)。通过启用此功能,我们可以允许 Opcache 将操作码缓存在外部文件中。某些脚本的性能将会有显着的提高。
这样,PHP 就会在 /tmp 目录中缓存一些可能存在于整个 PHP 生命周期的操作码导出二进制文件。

查看phpinfo:

PHP7如何开启Opcode打造程序强悍性能

测试结果:

PHP7如何开启Opcode打造程序强悍性能

同样的界面从之前的百毫秒发生了变化,现在增加到了50ms左右

PHP7如何开启Opcode打造程序强悍性能

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门