gpt4 book ai didi

java - HashMap内存效率

转载 作者:行者123 更新时间:2023-12-01 23:12:25 25 4
gpt4 key购买 nike

我正在开发一个 Java Web 应用程序,它使用一个大级联的 HashMap ,如下所示:

HashMap<String, HashMap<String, HashMap<String, Double[]>>>

构造一旦创建,然后以只读方式使用。

double 组始终只有两个元素。我遇到的问题是,最终每个 double 组使用了超过 160 个字节。这是两个 double 使用量(每个 8 个字节)的 10 倍。

我在创建 map 之前和之后使用 Runtime.getRuntime().totalMemory() 查看内存使用情况一次以进行这些测量。

如何最大限度地减少内存开销?

我现在考虑三种可能的解决方案:

  • 使用其他数据结构或 HashMap 实现(哪个?)

  • 准确地预先计算每个 map 的大小,并将初始容量设置为该数字 + 1,并将负载系数设置为 1.0。

  • 通过附加所有键将它们折叠成一个字符串。这对我来说不是很实用,但绝对可行。不过,代码看起来很糟糕。

我现在的问题是,在我创建一次 HashMap 然后仅以只读方式使用它们的情况下,最小化 HashMap 内存开销的最佳方法是什么?

最佳答案

你的描述有点困惑,但我会:

  1. 使用非常高的负载系数,例如 95%。

  2. 将其设为 double[] 而不是 Double[]

关于java - HashMap内存效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com