On Jun 9, 2010, at 4:56 PM, Adrian Crum wrote:

> On 6/9/2010 3:44 PM, Adam Heath wrote:
>> Adrian Crum wrote:
>>> I remember when Javolution was first brought into the project. The
>>> reason for adding it was better performance. I was new to the project at
>>> the time, so I just assumed that was true.
>>> 
>>> Since then I have read many books and articles on Java, and now I'm not
>>> sure that Javolution is appropriate for this project.
>> 
>> I've also had doubts about FastMap(javolution).  It doesn't implement
>> ConcurrentMap; the putIfAbsent method it *does* implement is not
>> completely defined.
>> 
>> FastSet/FastMap don't have a defined order.  It appears to be linked,
>> when no Comparator is used, but that is not well defined.
>> 
>> javolution itself is supposed to be defined as being more consistent
>> in memory usage and performance.  The library says these are useful
>> when the target platform is an embedded environment.  However, ofbiz
>> is not really an embedded-type application.  The extra overhead that
>> javolution uses for maintain memory block areas makes it very hard for
>> the jvm to do the new fancy escape analysis.
>> Lots of places in ofbiz use FastMap/List/Set.  They are not useful,
>> however, in places that only get populated at startup, and never ever
>> changed thereafter.  I've started fixing some of these use cases as I
>> spot them.
> 
> I've used arrays instead of Lists in similar cases. We really should have a 
> discussion about this. Using Javolution by default in a shotgun attempt to 
> improve performance is not a good strategy, in my opinion.

I agree. If I understand correctly are you saying that the move away from 
javolution will NOT be done as a shotgun attempt to improve performance?

If so, excellent! I can't wait to see the performance test code and the before 
and after comparisons for each change!

-David

Reply via email to