Java 如果我们需要在HashMap中存储100K条目,那么在创建HashMap时应该使用什么样的loadFactor和初始大小<;字符串,对象>;?

Java 如果我们需要在HashMap中存储100K条目,那么在创建HashMap时应该使用什么样的loadFactor和初始大小<;字符串,对象>;?,java,memory-management,collections,cpu-usage,Java,Memory Management,Collections,Cpu Usage,我使用InsertedOrderHashMap来存储5K到120K个条目。我使用的是HashMap的默认构造函数,默认大小为16,负载因子为0.75 我的问题是,我们如何优化这一点?我需要优化我的CPU使用情况和内存使用情况。我们应该增加负载系数以降低CPU利用率还是其他方式 非常感谢你的帮助 问候,, Saurav增加加载因子,会增加HashMap调整大小的点。这会在CPU达到稳定大小后增加CPU,但会节省一些内存 HashMap的大小始终是2的幂,因此有两个选项 增加CPU以节省一些内存,

我使用InsertedOrderHashMap来存储5K到120K个条目。我使用的是HashMap的默认构造函数,默认大小为16,负载因子为0.75

我的问题是,我们如何优化这一点?我需要优化我的CPU使用情况和内存使用情况。我们应该增加负载系数以降低CPU利用率还是其他方式

非常感谢你的帮助

问候,,
Saurav

增加加载因子,会增加HashMap调整大小的点。这会在CPU达到稳定大小后增加CPU,但会节省一些内存

HashMap的大小始终是2的幂,因此有两个选项

  • 增加CPU以节省一些内存,并使用
    128*1024
    容量和接近1的负载系数,或者
  • 使容量
    256*1024
    ,并保留默认负载系数

您可能应该使用数据库。不,我们不应该使用数据库。谢谢增加负载系数如何降低CPU利用率。你的意思是这样可以节省重新分配的时间吗?但是解决冲突不是一个问题,因为很可能会有更多的冲突,因为只有在数据结构的更大百分比已满后才会重新分配。负载系数为0.75是最佳的。但是,如果您知道要存储的元素数量,那么创建具有该容量的hashmap将是最佳选择。最重要的是你的散列算法,如果它运行良好,你就不必担心其他人,除非你注意到一个瓶颈