OPcache是什么

Fanly 2020-09-04 20:35:18
问答

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。

PHP OPcache

PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用 PECL 扩展中的 OPcache 库。

Opcache 的前生是 Optimizer+ ,它是 PHP 的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件。 Optimizer+ 将 PHP 代码预编译生成的脚本文件 Opcode 缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。从而加速 PHP 的执行。

什么是 zend opcache?

Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。

当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache 的目地是避免重复编译,减少 CPU 和内存开销。如果动态内容的性能瓶颈不在于 CPU 和内存,而在于 I/O 操作,比如数据库查询带来的磁盘 I/O 开销,那么 opcode cache 的性能提升是非常有限的。但是既然 opcode cache 能带来 CPU 和内存开销的降低,这总归是好事!

现代操作码缓存器(Optimizer+,APC2.0+,其他)使用共享内存进行存储,并且可以直接从中执行文件,而不用在执行前“反序列化”代码。这将带来显着的性能加速,通常降低了整体服务器的内存消耗,而且很少有缺点。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • WordPressPHP

    如何利用最新PHP版本提升WordPress网站性能

    升级到最新的PHP版本是提升WordPress网站性能的关键方式之一,能显著加快速度并增强安全性。在升级前,务必备份网站数据,检查当前PHP版本,并确保所选新版本与您的WordPress、主题和插件兼容。升级后,进行全面的网站测试,并优化WordPress配置,如启用PHP缓存和使用CDN服务。
  • PHP 8

    PHP8的JIT是什么

    JIT是一种编译器策略,它将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行,在PHP8中,Zend VM不需要解释某些操作码,并且这些指令将直接作为CPU级指令执行。
  • Memcached

    Memcached,高效简单的开源分布式内存缓存系统

    Memcached是一个高效的开源分布式内存缓存系统,主要用于减轻数据库负载和加速动态网页。它通过在内存中存储键值对数据实现快速读写,特别适用于处理大量动态内容的网站和应用。其简洁性、高性能和易用性使其成为许多大型项目的首选。Memcached缺乏数据持久化和复杂数据结构支持,适合需求简单以速度为优先的场景。
  • 硬盘缓存 Hard disk cache

    硬盘缓存越大越好吗

    硬盘缓存越大通常意味着更高的数据处理效率和系统响应速度,特别是在频繁的数据读写操作中;但缓存大小增加的性能提升存在边际效应,超过一定大小后可能不再带来显著的性能提升。因此选择硬盘时,除了考虑缓存大小,还应综合考量成本、性价比和具体应用需求。
  • 二级缓存 L2 cache

    二级缓存和三级缓存哪个重要

    对于依赖于快速数据访问和处理的应用,L2缓存的重要性更高,对于需要处理大量数据或多任务处理的应用,L3缓存的重要性更加显著。L2和L3缓存在现代处理器中相辅相成,共同作用于提升处理器性能,它们的重要性取决于特定的使用场景和处理器架构。
  • SSD 固态硬盘

    SSD固态硬盘有必要买带缓存的吗

    是否购买带缓存的SSD取决于用户需求和预算。对于多任务处理、游戏和创意专业人士,带缓存的SSD可以提供性能提升。然而,一般办公用户可能可以考虑更便宜的选项。要权衡性能和预算,做出明智的购买决策。