
Open Group Certified Distinguished IT Architect. Open Group Certified Master IT Architect. Sun Certified Architect (SCEA).

Originally posted by Jack Shirazi:
There is a common misconception that what you write is what gets translated into Java bytecodes. This is not the case.
The compiler is at liberty to mangle the code in whatever way it sees fit, as long as the bytecodes that come out are functionally identical to the source code functionality. Normally, the compiler tries to optimize the code. [/B]
Senior Software Engineer, IBM
author of: Practical Java
Originally posted by Jack Shirazi:
[B]No. I know that DashO aimed to try to do these basic kinds of optimizations. But I never tried to decompile any DashO optimized code.
My experience with DashO is that you do get a fairly decient performance boost from it. (min of 10% IME).
I while back, I found a race condition between the garbage collector and anothe specialized internal process. The basis for the discovery was that we could influence who would win the race by either using Jikes or the JDK to compile with. These compilers definetly produce different byte codes from the same source. In this case, Jikes produced a more optimized version of the byte code.
Sparc CPU's (as well as others), but not all, are pipelined. If you look at the assembler that is produced by the compiler you'll quickly discover that many instructions are issued out of order. This is to take into account different hold issues and to calculate just in time delivery of results (so no one waits). My guess is that it would be difficult to optimize for different types of CPU's. That would be best left up to the JIT or HotSpot engine.
Kirk
Author of <a href="http://www.amazon.com/exec/obidos/ASIN/0672324261/ref=jranch-20" target="_blank" rel="nofollow">Ant Developer's Handbook</a>
Originally posted by Jack Shirazi:
No. I know that DashO aimed to try to do these basic kinds of optimizations. But I never tried to decompile any DashO optimized code.
Bill Venners once pointed out to me that because the JVM was virtual, there was no way of determining the actual speedup of many of these optimization on the processor they will run on. But on the other hand, I would have thought that the tried and trusted optimizations would work in practice.
Senior Software Engineer, IBM
author of: Practical Java
| With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime. |