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 <[EMAIL PROTECTED]>:
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