harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Gray <chris.g...@kiffer.be>
Subject Re: [classlib] logging from within our implementation
Date Wed, 31 May 2006 05:54:06 GMT
On Tuesday 30 May 2006 23:38, Alex Blewitt wrote:
> On 30/05/06, Chris Gray <chris.gray@kiffer.be> wrote:
> > If the implementation is an empty method and is final, a straightforward
> > static flow analysis will show that the evaluation of the arguments can
> > also be optimised away.
> Not necessarily. Evaluation of arguments may have side-effects, and
> therefore even if the call to the logging gets optimised away, the
> evaluation may not be.

You're right, and the more I look at it the less likely it seems to me that 
the evaluation of parameters will be optimised away. To start with string 
concatenation: the expression ("hello " + "world") has no side-effects, but 
the optimiser has to perform an escape analysis in order to recognise that 
new StringBuffer("hello ").append("world")has none. (StringBuilder I guess 
these days). And in ("Frobbing the " + foo), if (as is likely) the type of 
foo is a non-final class or interface, all bets are off; a subclass could 
override the toString() method to have all kind of side-effects. Logging 
("Connecting to " + remotehost.getHostName()) certainly has side-effects.

It's probably also not a good idea to rely too much on JIT optimisations, 
given that Harmony should run on a number of VMs and not all of these will 
have a fully optimising JIT in all circumstances. It should be possible to 
compile the class libraries with or without logging.


Chris Gray        /k/ Embedded Java Solutions      BE0503765045
Embedded & Mobile Java, OSGi    http://www.k-embedded-java.com/
chris.gray@kiffer.be                             +32 3 216 0369

Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org

View raw message