Windows Cache Extension for PHP 是一个 PHP 加速器,用于提高在 Windows 和 Windows Server 上运行的 PHP 应用程序的速度。一旦 Windows Cache Extension for PHP 被启用并由 PHP 引擎加载,PHP 应用程序就可以在没有任何代码修改的情况下利用其功能。
Windows Cache Extension 包括 5 种不同的缓存类型。以下是每种缓存类型的用途及其提供的优势。
PHP Opcode Cache - PHP 是一个脚本处理引擎,它读取包含文本和/或 PHP 指令的数据输入流,并生成另一个数据流,通常以 HTML 格式。这意味着在 Web 服务器上,PHP 引擎每次被 Web 客户端请求时都会读取、解析、编译和执行 PHP 脚本。读取、解析和编译操作会给 Web 服务器的 CPU 和文件系统带来额外的负载,从而影响 PHP Web 应用程序的整体性能。PHP 字节码 (opcode) 缓存用于将编译后的脚本字节码存储在共享内存中,以便 PHP 引擎可以在后续执行同一脚本时重新使用它。
在 Wincache 2.0.0
中删除了对 opcode 缓存的支持,所有希望拥有 opcache 的用户应该使用 PHP 中包含的 OPcache 扩展。
文件缓存 - 即使启用了 PHP opcode 缓存,PHP 引擎也必须访问文件系统上的脚本文件。当 PHP 脚本存储在远程 UNC 文件共享上时,文件操作会引入显著的性能开销。Windows Cache Extension for PHP 包含一个文件缓存,用于将 PHP 脚本文件的内容存储在共享内存中,从而减少 PHP 引擎执行的文件系统操作数量。
解析文件路径缓存 - PHP 脚本经常使用相对文件路径包含或操作文件。每个文件路径都必须由 PHP 引擎规范化为绝对文件路径。当 PHP 应用程序使用许多 PHP 文件并通过相对路径访问它们时,解析路径的操作可能会对应用程序的性能产生负面影响。Windows Cache Extension for PHP 提供了一个解析文件路径缓存,用于存储相对路径和绝对文件路径之间的映射,从而减少 PHP 引擎必须执行的路径解析次数。
用户缓存 (自版本 1.1.0 起可用) - PHP 脚本可以通过使用用户缓存 API 利用共享内存缓存。PHP 对象和变量可以存储在用户缓存中,然后在后续请求中重新使用。这可以用来提高 PHP 脚本的性能,并在多个 PHP 进程之间共享数据。
会话处理程序 (自版本 1.1.0 起可用) - WinCache 会话处理程序可用于将 PHP 会话数据存储在共享内存缓存中。这避免了读取和写入会话数据的文件系统操作,当大量数据存储在 PHP 会话中时,这可以提高性能。