harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "LvJimmy´╝îJing" <firep...@gmail.com>
Subject Re: [classlib][performance] Harmony's great performance of ArrayList.add(int index, Object element)
Date Fri, 20 Apr 2007 13:41:33 GMT
Sounds great :D
Yes, I guess in many field Harmony works quiet well ( IIRC, we harmony
people already do some micro benchmark and get happy result, right?)

2007/4/20, Andrew Zhang <zhanghuangzhu@gmail.com>:
> Hey guys,
>
> I wrote a small performance benchmark for testing List.add(int index, Object
> element). Beyond my expectation, Harmony's ArrayList is amazingly fast
> compared with RI. The test scenario is very simple:
>
> 1. fill a list with 100,000 elements
>         for (int i = 0; i < LIST_COUNT; ++i) {
>             list.add(element);
>         }
> 2. add another 100,000 elements into this list in the random index from 0 -
> 100,000.
>        for (int i = 0; i < LIST_COUNT; ++i) {
>             list.add(indexGenerator.nextInt(LIST_COUNT),element);
>         }
>

Only a suggestion,  for micro benchmark, we may first add a part of
"warn up" so that we can get more proper result.
e.g, for test one
        // warn up phase
         for (int i = 0; i < LIST_COUNT; ++i) {
             list.add(element);
         }
       // test phase
       // get start time
         for (int i = 0; i < LIST_COUNT; ++i) {
             list.add(element);
         }
       // get end time

> For step2, Harmony's ArrayList  50% - 100% faster than RI!
>
> Here's the result from my machine:
> 1st run:
> Harmony ArrayList insert1: elapsed = 10ms
> Harmony ArrayList insert2: elapsed = 14861ms
> Harmony Vector insert1: elapsed = 70ms
> Harmony Vector insert2: elapsed = 30333ms
>
> RI ArrayList insert1: elapsed = 110ms
> RI ArrayList insert2: elapsed = 29532ms
> RI Vector insert1: elapsed = 70ms
> RI Vector insert2: elapsed = 30384ms
>
> 2nd run:
> Harmony ArrayList insert1: elapsed = 20ms
> Harmony ArrayList insert2: elapsed = 14941ms
> Harmony Vector insert1: elapsed = 70ms
> Harmony Vector insert2: elapsed = 31345ms
>
> RI ArrayList insert1: elapsed = 70ms
> RI ArrayList insert2: elapsed = 31726ms
> RI Vector insert1: elapsed = 60ms
> RI Vector insert2: elapsed = 31095ms
>

It seems in large mode, RI is a little better? So we may improve
Harmony memory management, GC , etc?

> Very good work!
>

Cheers! :P

> --
> Best regards,
> Andrew Zhang
>


-- 

Best Regards!

Jimmy, Jing Lv
China Software Development Lab, IBM

Mime
View raw message