Zend OPcache的“num_cached_keys”统计数据是什么意思?

3
< p > opcache_get_status() 返回的数据点包括:

'opcache_statistics' => [
    'num_cached_scripts' => 90,
    'num_cached_keys' => 96,
    'max_cached_keys' => 3907,
    ...
]

缓存的脚本数量是正确的且易于理解(可以通过计算返回值中的“scripts”部分进行确认)。但是,“keys”指的是什么?我认为Zend OPcache可以组织为键/值存储。在这种情况下,脚本和键之间应该有一对一的关系,除非...
  • OPcache还存储了其他内容,或者
  • 一些脚本使用2个或更多键存储

我没有看到用于列出OPcache使用的键的API。


1
这些的目的是在启动时设置表大小,一旦满了,OPcache就无法缓存更多的脚本。这些只是允许系统管理员监视这些固定限制,以便他们知道何时为下一次重启提高它们。 - TerryE
1个回答

5
OPcache为其哈希表的每个统计信息分别保留 num_entriesnum_direct_entries,这些值直接对应于opcache_get_statusnum_cached_keysnum_cached_scripts的结果。
代码中有注释直接支持您的第二个假设:一些内容被缓存在多个键下。

1
没有比源代码更好的解释了,谢谢。为了后人,链接的评论如下:少数键可以使用“间接”条目解析为相同的数据,这些条目指向其他条目[…] - Zilk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接