多图空间问题:番石榴

多图空间问题:番石榴,第1张

多图空间问题:番石榴

与关联的开销很大

Multimap
。最低限度:

  • 每个键和值都是一个
    Integer
    对象,它(至少)使每个
    int
    值的存储需求增加了一倍。
  • 中的每个唯一键值
    HashMultimap
    都与a
    Collection
    的值相关联(根据source,
    Collection
    a为a
    Hashset
    )。
  • 每个
    Hashset
    都使用8个值的默认空间创建。

因此,每个键/值对所需的空间(至少)可能比您对两个

int
值的预期要大一个数量级。(将多个值存储在单个键下的情况要少得多。)我希望1000万个键/值对可能占用400MB。

尽管您有2.5GB的堆空间,但如果这还不够的话,我不会感到惊讶。我认为上述估算值偏低。另外,它仅说明构建地图后需要存储多少存储空间。随着地图的增长,需要重新分配和重新整理表,这至少会暂时使使用的空间量增加一倍。最后,所有这些都假定

int
值和对象引用需要4个字节。如果JVM使用64位寻址,则字节数可能加倍。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5501454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存