Thanks for the link, but that kind of benchmark is not applicable here. This article best describes our scenario:

http://www.ibm.com/developerworks/java/library/j-jtp01274/index.html

We won't know the performance difference until after Javolution is completely removed from the project - and here's why: When the Javolution classes are loaded, their object pools are created. For FastMap about 7 MB, and for FastList about 7MB. So we have these big chunks of memory being held by Javolution that can't be used by other objects. As a result, the garbage collector has to work harder to keep memory available for other objects. When Javolution is removed completely, then we recover that 14MB of memory and the garbage collector is invoked less. Until that happens, I don't think we will see any change.

-Adrian

On 4/2/2013 6:23 PM, Jacopo Cappellato wrote:
On Mar 31, 2013, at 11:09 AM, Adrian Crum <[email protected]> 
wrote:

I created the branch to address the concerns in the previous discussion about 
the performance impact of removing Javolution. In other words, the branch is 
intended to be used with profilers before the changes are brought into the 
trunk. I don't think there will be any adverse effects of removing Javolution - 
because I understand how it did its 'magic' in the Java versions prior to 1.5. 
So, I need to find a way to convince others before I would be willing to do the 
work in the trunk.

One good reason for removing Javolution is that it doesn't seem that the 
project is actively maintained anymore (even if I see that they are now working 
on a new release, after several years).
By the way, when dealing with profiling/benchmarking you may find this useful:

http://blog.javabenchmark.org/2013/02/benchmarking-with-junitbenchmark.html

  I am ready to commit some changes to disable selectively the specialpurpose components: 
as we discussed we could even exclude them from the build/test process by default (the 
idea is that maintaining them is "optional" i.e. it is ok to commit code to 
framework/applications that breaks them but of course we are happy to accept 
contributions to make specialpurpose component work)... in this way we could concentrate 
on a smaller codebase (framework and applications).
Hmmm... I think I prefer removing Javolution from specialpurpose before we 
remove specialpurpose.
It is fine; just let me clarify that I didn't mention to remove specialpurpose 
from the trunk (only from the new release branch), only to disable some 
components.

Jacopo


Reply via email to