如果我们需要在其中存储 100K Entry <String, Object>,那么在创建 HashMap 时应该使用什么 loadFactor 和初始大小?
What loadFactor and initial size should be used while creating a HashMap if we need to store 100K Entry in it <String, Object>?
我正在使用 InsertedOrderHashMap 存储 5K 到 120K 的条目。我正在使用 HashMap 的默认构造函数,它具有默认大小 16 和加载因子 (0.75)。
我的问题是,我们如何优化它?我需要针对 CPU 使用情况和内存使用情况优化我的用例。我们应该增加负载因子以降低 CPU 利用率还是其他方式?
感谢您的帮助!
此致,
索拉夫
增加加载因子,增加 HashMap 调整大小的点。一旦达到稳定大小,这会增加 CPU,但会节省一些内存。
HashMap 的大小始终是 2 的幂,因此您有两个选择。
- 要么增加 CPU 以节省一些内存并使用
128 * 1024
容量和接近 1 的负载系数,要么
- 您设置容量
256 * 1024
并保留默认负载系数。
我正在使用 InsertedOrderHashMap 存储 5K 到 120K 的条目。我正在使用 HashMap 的默认构造函数,它具有默认大小 16 和加载因子 (0.75)。
我的问题是,我们如何优化它?我需要针对 CPU 使用情况和内存使用情况优化我的用例。我们应该增加负载因子以降低 CPU 利用率还是其他方式?
感谢您的帮助!
此致, 索拉夫
增加加载因子,增加 HashMap 调整大小的点。一旦达到稳定大小,这会增加 CPU,但会节省一些内存。
HashMap 的大小始终是 2 的幂,因此您有两个选择。
- 要么增加 CPU 以节省一些内存并使用
128 * 1024
容量和接近 1 的负载系数,要么 - 您设置容量
256 * 1024
并保留默认负载系数。