aspose file tools
The moose likes Java in General and the fly likes HashMap capacity Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login
JavaRanch » Java Forums » Java » Java in General
Reply Bookmark "HashMap capacity" Watch "HashMap capacity" New topic
Author

HashMap capacity

s manoharan
Greenhorn

Joined: Apr 02, 2007
Posts: 1
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
David O'Meara
Rancher

Joined: Mar 06, 2001
Posts: 13459

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.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 32717
    
    4
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.
David O'Meara
Rancher

Joined: Mar 06, 2001
Posts: 13459

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.
pooja jain
greenhorn
Ranch Hand

Joined: Jan 12, 2005
Posts: 213
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
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 32717
    
    4
pooja jain wrote: . . . why did you multiply by 0.6? . . .
Because in the earlier post it said
(151,.6f)
There is the 0.6.
 
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to run our stuff on 16 servers instead of 3.
 
subject: HashMap capacity
 
Similar Threads
HashMap - load factor ?
Wierd spurt in used memory
HashTable : initial capacity and load factor
Localized exceptions
hash collision avoid ?