- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我知道 APC 正在被 OpCache 取代。我启用了这个模块,到目前为止一切正常。但是,关于如何调整以获得最佳性能的文档很少。
我的系统目前有大量需要缓存的文件。因此,如果这些文件使其缓存,那么一切都很棒。但是,如果达到最大值,我可能不希望缓存中有很多文件。
最好我想缓存将具有最高命中率的文件。因此,如果有的话,很高兴知道 Opcache 使用的替换策略是什么。如何解决缓存中没有最常用文件的问题。 FIFO、LRU 中的任何一个都适用于我的系统,但我还没有找到任何关于此的文档。
任何帮助,将不胜感激!
最佳答案
更换策略
不要期望 FIFO 或 LRU。那东西不是那样工作的。 Opcode 缓存在首次访问 PHP 文件时存储代码,在内部优化代码并根据时间间隔和文件修改标记以及使用的内存做出是否更新缓存中的文件的决定。
所以关键问题是:要缓存多少文件?多少内存用于存储?什么是内部代码优化?如何排除文件?什么时候刷新文件?如果您想深入了解 OpCache,您可以在此处找到 Julien Pauli 的精彩文章:http://jpauli.github.io/2015/03/05/opcache.html
How do I solve the problem not having most frequently used files in cache.
However, if the max is reached I have a lot of files that I might not want in cache.
opcache.blacklist_filename
到救援。您可以使用黑名单文件来描述不应加速哪些文件。 Speed Tuning
We recommend the following configuration options for best performance in a production environment.
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1You also may add the following, but it may break some applications and frameworks. Please, read description of these directives and add them on your own risk.
opcache.save_comments=0
opcache.enable_file_override=1There is very little documentation on how to tune this for best performance
opcache.memory_consumption
.默认为 64MB。你可以提出来。 opcache.max_accelerated_files
- 缓存文件的最大数量。找出文件数量:find . -type f -print | grep php | wc -l
. opcache.optimization_level
指示。详情见https://stackoverflow.com/a/21291587/1163786 opcache.interned_strings_buffer
- 优化器使用称为字符串实习的技术来提高性能。这基本上意味着,如果您的应用程序使用字符串“Hello World” 100 次,则该字符串将仅存储 1 次,这将节省 99 次字符串存储并导致对现有值的 99 次访问。 4MB
是默认的。尝试 8、12、16。opcache.validate_timestamps=0
意味着额外的 stat 调用被删除。 opcache.save_comments
- 您的应用程序是否在评论中使用了 docblock 注释?如果没有,请关闭。这样可以节省内存。 opcache.load_comments
- 评论是否在缓存中取决于 opcache.save_comments。该指令的意思是“不加载缓存的注释”。似乎东西被缓存了,从未使用过。我必须管理我没有得到这个指令的用例。换句话说:我使用 opache.save_comments
来控制评论的添加。 opcache.fast_shutdown
- 这是一种更快地调用析构函数的技术。打开。 关于PHP Opcache 替换策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317795/
我正在尝试在我的服务器上启用 opCache(ubuntu 12.04 LTS,使用 PHP 版本 5.5.10-1+deb 运行 apache 2.4.7。 sury.org~precise+1).
在文档中它说“主要用于调试”,这会让我认为“除非你有问题并且需要进行一些调试,否则永远不要启用它”,但是阅读我能找到的关于它的所有内容都说启用它是“opcache.enable_cli 1”,但为什么
我对此有点不熟悉,但我的目标是让 Apache 2.4 和 PHP 5.5 在运行 Ubuntu 12.10 的非托管 VPS 上启动并运行。我成功地让他们同时操作和提供 html 和 PHP 内容,
我最近激活了 opcache,但它似乎没有工作。通过 phpinfo() 确认激活 如你所见0 次点击1 错过1 个缓存脚本(opcached gui) 我错过了什么? 服务器是linux服务器cen
php高并发之opcache 今天工作的时候接触到客户的一台服务器,业务逻辑比较简单 。估算pv在120w左右吧,用的是阿里云2c4g的服务器。一大早就开始卡顿了,登陆服务器后查看负载到了八九十。
我在 php 中启用了操作码缓存,它使页面加载量减少了 25%。 我使用优秀的 OpCache.php GUI 工具,我的输出如下。 按键输出如下。 点击输出如下。 我正在尝试了解其中的一些基本功能。
我有安装了 nginx+php-fpm 和 OpenCart 2 CMS 的 VPS。PHP 7.3 我有 0 个缓存脚本和 0 个缓存 key 。OPcache 不缓存任何东西,我尝试了一切但它仍然
我已经在一个新的主机(虚拟云)上设置了我的网站,但是我正在查看 opcache 和 脚本 说 一分钟左右从缓存中删除。 那么有办法阻止吗?还是正常行为? 非常感谢。 最佳答案 实际上有配置。opcac
我知道 APC 正在被 OpCache 取代。我启用了这个模块,到目前为止一切正常。但是,关于如何调整以获得最佳性能的文档很少。 我的系统目前有大量需要缓存的文件。因此,如果这些文件使其缓存,那么一切
我最近迁移到 PHP 5.4 并安装了 OPCache,它非常强大! 如何暂时禁用缓存? 我试过了: ini_set('opcache.enable', 0); 但是没有效果。 谢谢 最佳答案 一旦
我知道您可以与 Symfony APC 或 XCache Class Loader 一起使用。 不幸的是,在我放置 Symfony 代码的共享服务器中,只有 OpCache 被激活。 我可以将 Sym
我在 Laravel 8 中使用 guzzlehttp/guzzle 包。升级到 PHP 8 后,我得到: Symfony\Component\ErrorHandler\Error\FatalErro
我将我的自定义配置放在 php.ini 文件中,但配置没有改变。 opcache.revalidate_freq=0 opcache.validate_timestamps=0 opcache.max
我最近升级到 PHP 7。 我把它放在/etc/php.d/opcache.ini 中 opcache.file_cache = /var/www/html/.opcache opcache.file
据我了解这些设置: opcache.validate_timestamps=0 opcache.interned_strings_buffer=16 opcache.max_accelerated_f
我正在使用 OpCache,因为它随 PHP 5.5.x 一起提供,我真的很喜欢它,但我想调整它的内存设置,而这正是我理解不足的地方...... 当给定用户请求给定页面时,服务器会响应此请求,调用 P
我正在尝试启用 Opcache,但出于某种原因,在编辑我的 php.ini 文件并重新启动 apache(甚至重新启动服务器)后,它仍然没有启用。运行测试我可以看到 php 文件位置: Loaded
PHP7 提供了一种称为opcache 的字节码缓存机制。 .我想知道是否有任何方法可以在不分发其源代码的情况下分发和运行 PHP 脚本(.bin 文件扩展名)的“opcached”版本。 (我在ph
我想用 OPCache 只缓存特定的文件...我知道我可以用 opcache_compile_file 做到这一点但是 OPCache 会继续缓存服务器使用的所有其他文件。 我也知道我可以使用opca
也许这是个愚蠢的问题,但我正在尝试弄清楚 max_accelerated_files 实际上是如何工作的... 我理解来自 PHP net 的“说明/说明” opcache.max_accelerat
我是一名优秀的程序员,十分优秀!