钥匙要点
-
OPCACHE是PHP 5.5中的内置缓存引擎,该引擎将预编码脚本字节码存储在内存中,从而导致PHP应用程序中的性能提升。它可以作为较旧的PHP版本上的扩展名安装,并且可以将网站的平均响应时间缩短多达14%。
- opcache是比APC缓存更好的解决方案,因为APC不支持较新的PHP版本,并且可能导致执行错误。 OPCACHE与PHP本身更紧密地绑定,从而导致更频繁的更新和更少的错误。但是,与APC不同,OPCACHE不能用作数据缓存引擎。 要检查OPCACHE是否正常运行,可以使用opcache_get_configuration()和opcache_get_status()functions。还有几个准备好的脚本可获取所有opcache配置和状态数据,并以用户友好的方式显示。
- >可以在一个项目中启用OPCACHE并在单个服务器上的另一个项目中禁用。这是通过在全球级别启用OPCACHE,然后使用ini_set()函数在特定项目中禁用的OPCACHE来实现 版本5.5中的
- 在网络上,您会很容易地找到许多涵盖所有OPCACHE安装和配置步骤的教程(默认情况下是在5.5上启用,但可以作为较旧版本的扩展名安装)。阅读下面的文章,以找到有关使用此特定缓存引擎的不同实践方面的一些典型问题的答案。 >
- 1。 Opcache是否值得安装?我可以期待什么速度提升? 当然,这取决于。如果您的服务器设法处理传入的流量并保持较低的响应时间,则您可能不会感到需要进行性能。但是,在一个较大的网站上,每个小优化步骤都有很多流量。实施OPCACHE可以使您每秒处理更多的请求,并比没有字节码缓存引擎更快地返回响应。由于Opcache非常易于安装和配置,因此您不会花费太多时间来设置所有内容。
如果您正在寻找一些OPCACHE性能测试,则当然应该阅读有关实现此缓存引擎的AppDynamics文章。在他们的测试中,OPCACHE的安装使网站的平均响应时间减少了14%。 Web应用程序不同动作的响应时间的减少从6%到74%不等。如文章中所述,不同的代码零件可能会或多或少地从实施字节码缓存引擎中受益。我鼓励您详细阅读文章,并检查您可以在哪里获得最高的性能提升。
如果您正在寻找有关Opcache性能的其他资源,请在Fideloper.com和MassiveCale.com上查看示例。两项测试均报告安装OPCACHE后的响应时间减少了约50%。
>2。我已经使用了APC缓存。我应该迁移到opcache吗?
我认为你应该。有几个优点可以使Opcache成为更好的解决方案。
首先,APC缓存无法与最新的PHP版本一起使用。它根本不支持PHP 5.5。不建议将其安装在PHP 5.4上,因为据报道,这种配置可能会导致破坏整个应用程序的执行错误。只需查看有关PHP加速器或此堆栈溢出线程的Wikipedia文章即可获取一些详细信息。 但是,Opcache与PHP 5.5捆绑在一起,因此它肯定可以与此PHP版本一起使用。如文档中所写,还可以使用较旧的PHP版本(从5.2到5.4)安装。通常,OPCACHE比其他字节码缓存引擎更与PHP本身绑定,这可能会导致更新更新和更少的错误(有关详细信息,请阅读此处)。
>>从APC迁移到OPCACHE的唯一重要的事情是,后者无法用作数据缓存引擎。如果您已经实现了APC,则可能使用其APC_ADD()和APC_Fetch()函数,这些功能是数据缓存服务的接口。 Opcache只是一个字节码缓存引擎,因此不会提供类似的功能。如果您打算从APC切换到OPCACHE,请记住考虑此限制。请记住,如果您想保持APC Userland功能,则有一个APCU项目(非常感谢Oscar Merina在评论中指出)。
3。如何检查opcache是否实际上是在缓存我的文件?
如果您已经安装和配置了OPCACHE,则可能会发现控制哪些PHP文件实际上是在缓存的重要性。整个缓存引擎在后台工作,对访问者或Web开发人员透明。为了检查其状态,您可以使用提供此类信息的两个功能之一:opcache_get_configuration()和opcache_get_status()。幸运的是,有几个准备好的脚本,可以获取所有Opcache配置和状态数据,并以友好的方式显示。您无需独自编写任何代码,只需从下面选择一种工具:
>
- opcache控制面板,
- rasmus lerdorf的Opcache-STATUS,
- Pieter Hordijk的Opcachegui,
- 安德鲁·科灵顿(Andrew Collington)的opcache-gui。
首先,可能在每个典型项目中,您必须确保将OPCACHE.USE_CWD选项设置为true。启用此设置意味着Opcache引擎将查看完整的文件路径,以区分具有相同名称的文件。将其设置为false将导致具有相同基本名称的文件之间的碰撞。
>在使用注释的工具和框架中,还有一个重要的设置。如果使用学说,请记住将opcache.comments和opcache.save_comments设置设置为true。因此,您的文件中的文档注释也将包含在OPCACHE生成的预编码代码中。此设置将使您可以在没有任何干扰的情况下处理注释。
>
如果您的项目基于特定框架或Web应用程序,则最好检查文档中有关OPCACHE配置的任何指南。例如,这里有Moodle的示例配置。
5。我将应用程序配置保存在PHP文件中。我可以防止它被缓存吗?
>您的项目包含比其他文件更频繁的文件,您可以将其排除在缓存之外。处理包含您网站配置指令的PHP文件时,它可能特别方便。如果您阻止它们被缓存,则可以确保立即在您的应用程序中看到此文件中的每个更改。
opcache允许您指定包含缓存引擎不会处理的所有路径的黑名单文件。设置opcache.blacklist_filename指令后,只需将正确的文件列表放入您指定的路径中即可。文档页面包含一些有关如何将特定文件从缓存中排除的示例。>
6。如何在启用OPCACHE的单个服务器上同时运行开发环境和生产环境?>如果您的服务器运行了多个应用程序,则可能只愿意在其中一些应用程序中使用OPCACHE。开发和测试站点是此类环境的示例,在这种环境中,具有字节码启用的字节码不可行,并且可能造成的弊大于利。
幸运的是,可以在一个项目中启用OPCACHE并在单个服务器上禁用。为此,首先,您需要通过设置OPCACHE.SHABLE指令为php.ini文件中的true来启用全局级别的OPCACHE。然后,如果您不想在其中一个项目中使用字节码缓存,只需通过使用Ini_set()函数将相同的指令设置为false来禁用它。因此,首先,您需要在全球范围内启用缓存,然后可以在某些项目“本地”中将其禁用。您不能做相反的事情 - 不允许使用ini_set()启用缓存。
>设置opcache。可在项目中的顶部文件中可为false设置,将禁用缓存,同时将其保存在其他地方。
我希望这套常见的问题和答案为您提供了一些有关如何在PHP应用程序中使用Opcache的实用信息。如果您对该主题还有其他疑问或评论,请随时在下面发布它们。您也可以通过Google Plus与我联系。摘要
经常询问有关opcache
的问题
> php?
opcache中OPCACHE的主要功能是一个强大的PHP扩展程序,可以通过将预编译的脚本字节码存储在共享内存中来改善PHP性能。这消除了PHP在每个请求上加载和解析脚本的需求,从而减少了执行时间和内存使用情况。它对流量高或复杂应用程序的网站特别有益,因为它可以显着加快加载时间并增强整体性能。>
> OPCACHE与其他Caching机制有何不同?存储PHP脚本输出的缓存机制,OPCACHE存储了PHP脚本的预编码。这意味着每次提出请求时都不必重新编译PHP代码,从而节省了很多处理时间和资源。这使OPCACHE成为改善PHP性能的更有效的解决方案。>
>如何在我的PHP配置中启用Opcache?>
您可以通过使用php中的opcache_get_status()函数。此功能返回有关OPCACHE状态的一系列信息,包括配置设置,内存使用率和命中率。您可以使用此信息来验证OPCACHE是否正常工作。 php。此功能将清除OPCACHE并强迫PHP在下一个请求中重新编译脚本。但是,请记住,经常清除opcache可能会对性能产生负面影响,因为它破坏了缓存的目的。
>> opcache有任何潜在的问题或限制?提高PHP的性能,并非没有潜在的问题或局限性。例如,它可能会引起基于文件的会话或基于文件的用户数据存储的问题,因为除非文件时间戳更改,否则不会重新编译脚本。另外,对于流量低或简单应用程序的网站可能不那么有效,因为性能增长可能并不明显。>如何优化OPCACHE配置以获得最大性能?
>有几种配置指令您可以调整它们以优化OPCACHE性能。例如,您可以增加opcache.memory_compumption,以分配更多内存以存储预编译字节码。您还可以调整opcache.revalidate_freq来控制脚本更改的opcache多久检查一次。
opcache与所有PHP版本都兼容?
opcache与php 5.2及更高版本兼容。但是,默认情况下为5.5 php。对于早期版本,您需要将其安装为PECL扩展。
>我可以将OPCACHE与其他Caching机制一起使用?
>
opcache适合所有类型的网站或应用程序?>以上是了解opcache的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

在本文中,我们将在Laravel Web框架中探索通知系统。 Laravel中的通知系统使您可以通过不同渠道向用户发送通知。今天,我们将讨论您如何发送通知OV

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载
最流行的的开源编辑器

记事本++7.3.1
好用且免费的代码编辑器