I do think it's definitely worthwhile trying this out.  Looking at the history 
of javolution on their main page[1], they don't appear to have made much in the 
way of changes for at least 2 years and possibly up to 5, meanwhile the JDK/JVM 
continues to progress.

I was expecting to check the site and see that it was time for us to upgrade 
the library before doing any comparisons but things seem pretty stagnant.

Regards
Scott

[1] http://javolution.org/

On 31/05/2012, at 6:33 PM, Adrian Crum wrote:

> That's the thing - measuring performance can be tricky. A while back I ran 
> across some code that didn't use fixed-count loops, but instead ran the test 
> code through a loop indefinitely until the loop execution time stabilized - 
> then the stabilized time was used as the measurement. That approach seemed to 
> make the most sense to me.
> 
> But I agree - before we remove it altogether we should run some performance 
> tests.
> 
> -Adrian
> 
> On 5/31/2012 7:27 AM, Jacopo Cappellato wrote:
>> We could create a branch, convert the code there to remove javolution and 
>> then run some profiling on the two instances; we could define in advance 
>> (before starting the actual work) the tools and tests we will use to measure 
>> the performance.
>> Then people will run the same tests in their own boxes (different platforms, 
>> hardware) and we will have a decent amount of data to take a more informed 
>> decision.
>> Any idea for the tool? (JMeter etc...)
>> 
>> Jacopo
>> 
>> On May 31, 2012, at 7:37 AM, Adrian Crum wrote:
>> 
>>> http://mail-archives.apache.org/mod_mbox/ofbiz-dev/201006.mbox/%3c2640abb5-65b1-4cb0-b360-2a97eac2e...@me.com%3E
>>> 
>>> -Adrian
>>> 
>>> On 5/31/2012 2:08 AM, Scott Gray wrote:
>>>> Perhaps my memory is failing but haven't you raised this topic before?  
>>>> What was the outcome back then?
>>>> 
>>>> I think if you're planning to rehash old topics then it's good to call out 
>>>> the previous discussions that have been had to give a full context.  While 
>>>> I'm not at all suggesting you are doing this, it is entirely possible for 
>>>> someone with an agenda to keep raising old topics as new ones until the 
>>>> desired response is received from the community, later on when someone 
>>>> complains you can just say "but I discussed it first!" even if the idea 
>>>> had been rejected in several previous discussions.  Again, I'm not 
>>>> suggesting you're doing this, just using it as an example of why it's 
>>>> important to disclose previous discussions when raising them anew.
>>>> 
>>>> Regards
>>>> Scott
>>>> 
>>>> On 30/05/2012, at 11:24 PM, Adrian Crum wrote:
>>>> 
>>>>> I am reposting this thread with a different subject to make sure everyone 
>>>>> interested has a chance to comment.
>>>>> 
>>>>> To summarize (and to make sure we are all on the same page):
>>>>> 
>>>>> 1. Javolution was added to the project in the JDK 1.4 days. David Jones 
>>>>> ran some performance tests that demonstrated a performance boost when 
>>>>> using Javolution Fast* classes instead of java.util.* classes.
>>>>> 2. Javolution acheived this performance boost by eliminating some garbage 
>>>>> collection. The Fast* classes use object pools - where objects are 
>>>>> returned to the pool when they are unused instead of being garbage 
>>>>> collected.
>>>>> 3. JDK 1.5 introduced an improved garbage collector that eliminated the 
>>>>> long pauses caused by previous garbage collectors. Also, it introduced 
>>>>> the java.util.concurrent package - which is functionally similar to 
>>>>> Javolution's concurrency. When OFBiz switched to the JDK 1.5 requirement, 
>>>>> the need for Javolution was eliminated - but it was kept in the project 
>>>>> anyway.
>>>>> 4. No performance tests have been executed recently to see what kind of 
>>>>> impact removing Javolution will have.
>>>>> 5. In the attached thread I recommend removing Javolution from object 
>>>>> fields that are effectively static (either declared static or a field of 
>>>>> an object that is cached indefinitely), because the pooled object is 
>>>>> never returned to the pool - defeating the purpose of the library.
>>>>> 6. In the attached thread Adam suggests removing Javolution entirely.
>>>>> 
>>>>> -Adrian
>>>>> 
>>>>> 
>>>>> On 5/27/2012 9:56 PM, Adrian Crum wrote:
>>>>>> On 5/27/2012 5:56 PM, Adam Heath wrote:
>>>>>>> On 05/27/2012 07:09 AM, Jacques Le Roux wrote:
>>>>>>>> From: "Adrian Crum"<adrian.c...@sandglass-software.com>
>>>>>>>>> FYI, in the Mini-language overhaul I interned the Element tag name
>>>>>>>>> Strings.
>>>>>>>> Yes, that's really a good improvment! Things are much more clear now.
>>>>>>>> It's only in minilang though (I mean not in widgets actions yet), 
>>>>>>>> right?
>>>>>>>> 
>>>>>>>>> Another thing to discuss is the proper use of Javolution and/or
>>>>>>>>> whether we still need it.
>>>>>>>> Yes, I also wondered about that last week when willing to cast to a
>>>>>>>> TreeMap.
>>>>>>>> The fact that it's a one man project and will maybe less and less
>>>>>>>> supported http://javolution.org/#HISTORY is not yet an issue but could 
>>>>>>>> be
>>>>>>> I personally see no need for javolution.  It's non-standard 
>>>>>>> concurrency(java.util.concurrent).  It does it's own memory allocation, 
>>>>>>> which prevents escape-analysis from working(allocating memory on the 
>>>>>>> stack instead of the heap).
>>>>>>> 
>>>>>> In the Mini-language overhaul I removed Javolution classes from model 
>>>>>> fields - since the models could be kept in memory (cached) indefinitely 
>>>>>> (resulting in borrowed objects that are never returned to the pool). I 
>>>>>> kept Javolution in the script execution path - which is the proper use 
>>>>>> from my perspective. I know you ran into issues with FastMap previously, 
>>>>>> but I don't remember the details.
>>>>>> 
>>>>>> If there are no objections, I can remove Javolution from Mini-language 
>>>>>> entirely.
>>>>>> 
>>>>>> -Adrian
>>>>>> 

Reply via email to