posted 9 years ago

Hi ,

{can anyone suggest me what values of Initial capacity and Load Factor of a hashmap, can Hold a maximum capacity,

My application is very bulk it when 170000 alarms are processed out of mem heap occurs, i was not allowed to increase my server heap size , since it reaches certain limit, only thing i can do is to increase the Hashmap capacity and check once more with my application...

I have tried using default (16,.75f)

have tried with (151,.6f)

also please tell me how to calculate the capacity that a hashmap can hold using these Initial capacity and load factor.

}

Thanks

regs

Mano

{can anyone suggest me what values of Initial capacity and Load Factor of a hashmap, can Hold a maximum capacity,

My application is very bulk it when 170000 alarms are processed out of mem heap occurs, i was not allowed to increase my server heap size , since it reaches certain limit, only thing i can do is to increase the Hashmap capacity and check once more with my application...

I have tried using default (16,.75f)

have tried with (151,.6f)

also please tell me how to calculate the capacity that a hashmap can hold using these Initial capacity and load factor.

}

Thanks

regs

Mano

posted 9 years ago

I doubt it is related to the java.util.HashMap itself, more likely the data that is contained in the HashMap.

170k items is not an unreasonable size for a HashMap.

170k items is not an unreasonable size for a HashMap.

posted 9 years ago

Welcome to JavaRanch.

There is nothing in the API about a maximum size, but I believe the actual size is always an exact power of 2. So your 170000 would actually be 524288. 2^18 is 262144, but 262144 * 0.6 < 170000, so it would double to 2^19 = 524288.

There is nothing in the API about a maximum size, but I believe the actual size is always an exact power of 2. So your 170000 would actually be 524288. 2^18 is 262144, but 262144 * 0.6 < 170000, so it would double to 2^19 = 524288.

posted 8 years ago

So your 170000 would actually be 524288. 2^18 is 262144, but 262144 * 0.6 < 170000, so it would double to 2^19 = 524288.

why did you multiply by 0.6?

Given that it is backed by an Array with max size 2^31-1, or 2^30 when limited to powers of two. 2^19 still leaves plenty of room.

i am not getting the calculations.

Campbell Ritchie wrote:Welcome to JavaRanch.

There is nothing in the API about a maximum size, but I believe the actual size is always an exact power of 2. So your 170000 would actually be 524288. 2^18 is 262144, but 262144 * 0.6 < 170000, so it would double to 2^19 = 524288.

So your 170000 would actually be 524288. 2^18 is 262144, but 262144 * 0.6 < 170000, so it would double to 2^19 = 524288.

why did you multiply by 0.6?

Given that it is backed by an Array with max size 2^31-1, or 2^30 when limited to powers of two. 2^19 still leaves plenty of room.

i am not getting the calculations.

:d

It is sorta covered in the JavaRanch Style Guide. |