> -----Original Message-----
> From: Finn Bock [mailto:[EMAIL PROTECTED]

> [ Glen : ]
> > Sigh...I guess I *didn't* know bytecode by heart after
> > all!  ;-)
>
> I didn't bring it up to discourage the use of static initialized arrays.
> If it makes sense to put something in a static array we should do so
> without concern of compiletime vs. runtime. After all, the
> initialization is only performed once per classloader.
>

Well, (sorry to disappoint you, Peter) I don't know my BC by heart, but IIRC
the real difference would be in the size of the compiled classes...
See also a little trick I stumbled upon for for-loops. It's common(?)
knowledge that testing for a value to be greater than (or equal to) another
value, is the same as testing whether the result of their subtraction is
greater than (or equal to) zero --rewriting this effectively saves a
processor instruction per comparison.
If you subsequently combine the test and the decrementing of the counter,
you can slightly reduce the size of the compiled class further.

In short:

  for( int i = 0; i < j ; ++i )

is better written as ( = faster; that is: it will save a few hundred
millisecs in large loops, the few that might just be enough to give the
average user the impression that the software is actually any faster than
before )

  for( int i = j; i > 0; --i )

and even better ( leads to even more compact compiled classes;
performance-boost is negligeable with current hardware, but might turn out
to be an advantage --albeit a minor one - when this class has to be loaded
from a network location )

  for( int i = j; --i >= 0; )


Cheers,

Andreas

Reply via email to