So item 46 in Effective Java says that there shouldn't be a
performance penalty using the nice for loops. But the following test
in Eclipse on my machine (MacBook Pro, Intel Core Duo, 2.16 GHz) shows
a performance penalty.

Given an ArrayList called ints with 1 million Integers, this takes 31
milliseconds:
for (int i = 0, size = ints.size(); i < size; i++)
  ints.get(i).intValue();

And this takes 76 milliseconds:
for (Integer i : ints)
  i.intValue();

What am I missing? Probably just some super naive testing on my part. :)

On Thu, Jun 4, 2009 at 12:32 PM, Daniel Rice (דניאל רייס)
<[email protected]> wrote:
>
>  The speedup was measured over 3 non-JProfiler runs, invoked within
> Eclipse.  It's certainly possible that some of the difference is
> normal runtime fluctuation but each optimized run was faster than any
> of the non-optimized runs.
>
> Dan
>
> On Thu, Jun 4, 2009 at 3:28 PM, Scott Blum <[email protected]> wrote:
>> On Thu, Jun 4, 2009 at 2:54 PM, Lex Spoon <[email protected]> wrote:
>>>
>>> The original posts says a 3% improvement.  I have found subsequent
>>> runs of the compiler to vary by larger than this amount, but let's
>>> assume this is the average improvement over many runs.
>>
>> The 3% is as measured by something like JProfiler, or that's some kind of
>> absolute timer?  I've found JProfiler sometimes overreports time spent in
>> small/fast methods that are invoked many times, but when I measure with no
>> profiling and using something like unix time, the differences disappear.
>> Does the 3% hold up without -soyc enabled?
>>
>
> >
>



-- 

Sent from Piedmont, CA, United States

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to