xmlgraphics-fop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Delmelle <andreas.delme...@telenet.be>
Subject Re: Memory Leak in PropertyCache: need ideas
Date Fri, 22 Aug 2008 16:09:32 GMT
On Aug 22, 2008, at 16:29, Jeremias Maerki wrote:

[Peter: ]
>> What happens is SEGMENT_COUNT is not a power of 2? Or, what obliges
>> SEGMENT_COUNT to be a power of 2?
>>

> There's a lot of AND-ing of hash codes to determine the segments and
> buckets and that's much easier to handle if you have a power of 2 and
> can shift bits around.

Confirmed. SEGMENT_COUNT is actually a somewhat arbitrary number.  
Dividing the map into 32 segments allows for concurrent (and  
synchronized!) access by 32 threads at the same time, without  
involving waits (provided that each thread accesses a different  
segment of the map). This is the most significant benefit compared to  
synchronizedMap(), which synchronizes the whole put() method, so each  
thread calling put() blocks all others.



Cheers

Andreas

Mime
View raw message