了解 OPCache 行为
Understanding OPCache behavior
即使该网站位于 CloudFlare CDN 之后,我们还是决定使用 OPCache 来减少服务器负载,因为每秒最多(峰值)约 400 个活跃用户(大部分时间是 50-100 u/s).
但是大多数页面对于每个用户都有一些不同的数据,例如用户的仪表板概览,大部分数据是相同的,但是对于需要更新的每个用户有一些不同的数字。
我的问题是:
- 为这样的网站使用 OPCache 是否明智?
- 它将如何处理具有独特查询的页面?与没有 OPCache 的 运行 相比,它会占用更多 RAM(为每个用户缓存多个页面)吗?
- 是否会影响 Signup/Login 等页面的性能?
- 我 read 所有 PHP 应用程序都应该使用 OPCache,对吗?
P.S。该网站是 运行 PHP 7.3.4
- 是的,它将获得性能提升
- 如果您的 RAM 使用量增加并且您对此很担心,您可以通过
opcache.memory_consumption
微调内存消耗
- 影响意味着他们会更快
- 是的,除了极端情况(例如,当您的应用程序的源代码以非常快的速度更改或测试时),确实没有理由不使用 OPCache。
TLDR:生产代码应始终启用 OPCached。
OPcache 仅缓存 PHP 脚本的内部操作码表示,而不缓存其输出。执行的查询或页面显示的内容对 OPcache 的行为没有影响。
此缓存将提高所有 PHP 网页的性能。因此,它应该始终在生产站点上启用。
作为这种方法的一般观点
Php 缓存任何 APC 缓存或 opcache 或其他是惊人的策略这应该 php 总体上提高 50% 的性能
因为它的作用如下
当 php 脚本执行时,这涉及三个主要步骤
1-脚本解析
2-编译脚本
3-输出
APC 缓存或充当中介,因为它以编译形式保存 php 脚本,因此 php 将直接从输出阶段开始,这不会影响查询,但会提高其速度作为 MySQL 的查询,或者不仅仅是 SELECT 的语句或其他任何内容,但它涉及执行扩展,如 PDO,因此它会变得更快
您可以对扩展进行如下分类
APC 或 Xcache php 5
在新的 php 版本中使用 opcache
它们的原理都是一样的
一些开发人员喜欢 APC,其他开发人员喜欢 opcache
例如 X-cart,流行的购物平台使用 xcache。
每个 PHP 脚本都在运行时编译,
将人类可读的代码转换为机器可以理解的代码需要时间。
OpCache 是一个字节码缓存引擎,它只会将脚本编译为字节码脚本一次 - 这样可以节省时间 - 然后将预编译的脚本存储在内存中,这应该会提高你的性能 PHP 应用程序。
我认为您遗漏的是 opcache 不缓存脚本的结果,而只是编译脚本。
请注意,如果 php 脚本自身正在为每个用户更改,则此方法效果不佳
或者如果它是从 - 比如说 - 数据库
即使该网站位于 CloudFlare CDN 之后,我们还是决定使用 OPCache 来减少服务器负载,因为每秒最多(峰值)约 400 个活跃用户(大部分时间是 50-100 u/s).
但是大多数页面对于每个用户都有一些不同的数据,例如用户的仪表板概览,大部分数据是相同的,但是对于需要更新的每个用户有一些不同的数字。
我的问题是:
- 为这样的网站使用 OPCache 是否明智?
- 它将如何处理具有独特查询的页面?与没有 OPCache 的 运行 相比,它会占用更多 RAM(为每个用户缓存多个页面)吗?
- 是否会影响 Signup/Login 等页面的性能?
- 我 read 所有 PHP 应用程序都应该使用 OPCache,对吗?
P.S。该网站是 运行 PHP 7.3.4
- 是的,它将获得性能提升
- 如果您的 RAM 使用量增加并且您对此很担心,您可以通过
opcache.memory_consumption
微调内存消耗
- 影响意味着他们会更快
- 是的,除了极端情况(例如,当您的应用程序的源代码以非常快的速度更改或测试时),确实没有理由不使用 OPCache。
TLDR:生产代码应始终启用 OPCached。
OPcache 仅缓存 PHP 脚本的内部操作码表示,而不缓存其输出。执行的查询或页面显示的内容对 OPcache 的行为没有影响。
此缓存将提高所有 PHP 网页的性能。因此,它应该始终在生产站点上启用。
作为这种方法的一般观点 Php 缓存任何 APC 缓存或 opcache 或其他是惊人的策略这应该 php 总体上提高 50% 的性能 因为它的作用如下 当 php 脚本执行时,这涉及三个主要步骤
1-脚本解析
2-编译脚本
3-输出
APC 缓存或充当中介,因为它以编译形式保存 php 脚本,因此 php 将直接从输出阶段开始,这不会影响查询,但会提高其速度作为 MySQL 的查询,或者不仅仅是 SELECT 的语句或其他任何内容,但它涉及执行扩展,如 PDO,因此它会变得更快
您可以对扩展进行如下分类
APC 或 Xcache php 5
在新的 php 版本中使用 opcache
它们的原理都是一样的 一些开发人员喜欢 APC,其他开发人员喜欢 opcache 例如 X-cart,流行的购物平台使用 xcache。
每个 PHP 脚本都在运行时编译, 将人类可读的代码转换为机器可以理解的代码需要时间。
OpCache 是一个字节码缓存引擎,它只会将脚本编译为字节码脚本一次 - 这样可以节省时间 - 然后将预编译的脚本存储在内存中,这应该会提高你的性能 PHP 应用程序。
我认为您遗漏的是 opcache 不缓存脚本的结果,而只是编译脚本。
请注意,如果 php 脚本自身正在为每个用户更改,则此方法效果不佳 或者如果它是从 - 比如说 - 数据库