草稿:OPcache
您所提交的草稿仍需改善。在2025年11月7日由SummmerSky (留言)审阅。
如何改善您的草稿
该草稿已重新提交,目前正在等待审核。 |
| 您所提交的草稿仍需改善。在2025年11月2日由Kurgenera (留言)审阅。 如何改善您的草稿
|
| 您所提交的草稿仍需改善。在2025年10月31日由Kurgenera (留言)审阅。 如何改善您的草稿
|
| 您所提交的草稿仍需改善。在2025年10月30日由Kurgenera (留言)审阅。 如何改善您的草稿
|
| 您所提交的草稿仍需改善。在2025年10月30日由Kurgenera (留言)审阅。 如何改善您的草稿
|
| 您所提交的草稿仍需改善。在2025年10月29日由Kanshui0943 (留言)审阅。 如何改善您的草稿
|
| 您所提交的草稿仍需改善。在2025年10月29日由Kurgenera (留言)审阅。 如何改善您的草稿
|
| 您所提交的草稿仍需改善。在2025年10月28日由Kurgenera (留言)审阅。 如何改善您的草稿
|
| 原作者 | The PHP Group |
|---|---|
| 首次发布 | 2008年 |
| 编程语言 | C |
| 类型 | PHP 扩展程序 |
| 许可协议 | PHP许可证3.01 |
| 网站 | OPcache手册主页 |
OPcache是一个PHP扩展程序,由PHP官方发布[1],其功能是缓存编译后的字节码以供后续使用,可大幅提升处理速度。[2][3][4]
历史
[编辑]2008年,OPcache的前身,PHPNG的开发已经[谁?]开始[5],到了2013年,PHP团队在新的5.5.0版本将OPcache合并进入PHP核心并被默认启用,这标志着OPcache现在成为官方且预装的扩展[6][5],同时,OPcache在这个版本也更新了持久化功能,现在其可将字节码存入文件系统[5],而到了PHP 7.4.0,OPcache则更新了预加载功能,该功能可以预先加载尚未运行的代码以提升性能[7][5]。到了PHP 8.0.0 时,OPcache 添加了一个内建的即时编译器,原本缓存的操作码[需要解释]本来需要被解释器实时转译为机器码再执行,这次更新使得机器码也可以被缓存,省去了解释的步骤,进一步提升性能[8],而在最新的PHP 8.4.0中,OPcache的JIT默认获得了64MB的缓冲区空间,但是注意需要手工启用[9]。
原理
[编辑]OPcache的原理是,在访问新代码片段时,检查其是否在缓存中,如果不在,则将编译这段代码,并将编译后生成的字节码在内存中进行缓存[6][2],下一次执行同一段代码时,便无需运行词法分析等编译过程,将直接从内存中提取字节码进行执行而不是再次编译[4][10][11],而不是像通常的那样,实时编译所有的代码[2],同时,OPcache还会在代码变动时自动更新缓存的字节码[12],另外,OPcache同样缓存了一些常量、以及文件中的符号表[13]。
实际性能提升
[编辑]在PHP 5.5时,OPcache 提供了约50%的性能提升,同时显著降低了磁盘和CPU的占用率(因为编译的过程需要大量的 CPU 消耗[4])[10][5],也间接因为性能瓶颈的降低提升了应用程序的可扩展性[14][15][16]。
參考資料
[编辑]- ^ PHP手册编辑团队. PHP: OPcache - Manual. PHP官方网站. PHP手册编辑团队. [2025-10-28] (中文).
- ^ 2.0 2.1 2.2 Webgo. OPCache - Was ist das?. WebGO. Webgo FAQs. [2025-10-29] (德语).
- ^ Cuervo, Víctor. ¿Qué es OPcache?. Arquitecto IT. 2020-10-21 [2025-10-29] (西班牙语).
- ^ 4.0 4.1 4.2 PHP 优化性能之 Opcache 扩展. VEITOOL. VEITOOL. 2024-09-13 [2025-11-01] (中文(中国大陆)).
- ^ 5.0 5.1 5.2 5.3 5.4 Joe Niland. PHP OPcache Quick Reference. Sydney Blog. Sydney Software Development. [2025-10-28] (英语).
- ^ 6.0 6.1 PHP手册编辑团队. PHP: 简介 - Manual. PHP官方网站. PHP手册编辑团队. [2025-10-28] (中文).
- ^ PHP手册编辑团队. PHP: 预加载 - Manual. PHP官方网站. PHP手册编辑团队. [2025-10-28] (中文).
- ^ Erik Pöhler. Enable, configure and monitor PHPs OPCache - Erik Pöhler's Weblog. erikpoehler.com. Erik Pöhler blog. [2025-10-30] (英语).
- ^ PHP 8.4: Opcache: INI 对 JIT 启用方式的更改 | 日思录. www.tubring.cn. 日思录. 2024-02-29 [2025-11-02].
- ^ 10.0 10.1 Shahzeb Ahmed. PHP OPcache Explained: How to Improve Your App's Performance. www.cloudways.com. Cloudways. 2018-11-22 [2025-10-30] (英语).
- ^ HiBit. Boosting PHP performance with OPCache. HiBit Blog. HiBit. [2025-10-28] (英语).
- ^ Harish Kumar. PHP OPCache: The Secret Weapon for Laravel Performance Boost. Qirolab. Qirolab. 2024-07-26 [2025-10-30] (英语).
- ^ 掌握PHP缓存利器:OPcache与APCu深度解析与优化技巧 - 云原生实践. www.oryoy.com. Oryoy新闻. 2025-03-04 [2025-11-02].
- ^ LiquidWeb文档作者团队. Zend OpCache for PHP. Liquid Web. LiquidWeb文档作者团队. [2025-10-30] (英语).
- ^ Tejas. PHP 8+ Performance Tuning for WordPress: OPcache and Beyond - WisdmLabs. Wisdm Labs. Wisdm Labs. 2025-08-13 [2025-10-30] (英语).
- ^ 王宏仁. PHP核心開發者告訴你PHP 7的五大效能密技. iThome. IT之家. 2015-12-26 [2025-11-01] (中文(臺灣)).
外部連結
[编辑]| 您所提交的草稿正在等待有经验的志愿者審核。
您可能需要等待最多一周,因为草稿的审核没有特定的顺序。目前一共有5篇草稿正在等待志愿者審核。
如何改善您的草稿
|

