如何获取 Ignite.NET 中每个缓存键项使用的大小(总内存)(C#)?

How to get the size (total memory) used for each cached key item in Ignite.NET (C#)?

提问人:Justin Mathew 提问时间:6/21/2022 最后编辑:Pavel TupitsynJustin Mathew 更新时间:6/21/2022 访问量:354

问:

是否有任何方法可以获取 Ignite.NET (C#) 中每个缓存键项使用的大小(总内存)?当前方法提供缓存中缓存条目的总数。GetSize()

.NET Ignite GridGain

评论


答:

2赞 Stanislav Lukyanov 6/21/2022 #1

由于内存占用的结构,实际上不可能找出特定条目的内存使用情况。每当您添加条目时,您都会消耗

  • 数据页中的内存块;数据页面中也存在开销和碎片,因此增加了顶部
  • 对于您拥有的每个索引,索引树还将使用新索引树叶的内存块 + 一些(微小的)内存量
  • 有一些内部数据结构也会被改变,并消耗少量的额外内存

因此,您通常希望了解数据区域的总使用大小,而不是试图了解特定条目的大小。然后,您可以将其除以区域中的条目数,以获得平均条目大小。

下面是数据区域指标的接口。

要获取数据区域的所有缓存当前占用的内存量,需要计算 。TotalUsedPages * PageSize