Word on /. is that we are taking about roughly a factor of two over the faster JIT VM's presently out there, with higher and lower performance saves depending upon the particular code and application.
As John notes, relatively straight-line code that does nothing but loops and array references will not benefit much at all due to inherent costs of Java safety, but dynamic, highly object-oriented code likely to run with long session times, for example a servlet server, might exhibit relatively huge savings.
One of the remarks I saw was that this approach goes a long way to reduce the disincentives to write truly reusable code, reducing the pain of message sends dramatically. Apparently the Hotspot is likewise agressive in performing inlining, both to reduce costs of sends, and to better exploit the benefits of global optimization analysis.
-----Original Message----- From: MIME :John.Maloney@disney.com Sent: Wednesday, April 28, 1999 3:12 PM To: squeak@cs.uiuc.edu Subject: Re: Hotspot at Last
It *is* somewhat confusing, because Sun has several different groups working on Java optimization. But the HotSpot group includes a number of the Self/Animorphic guys, and they really have made heavy use of dynamic optimization. Plus, they've made the Java VM work even better than the Self VM. In particular, the "cold" code performance, before optimization, should be much better than the Self VM.
I haven't seen any benchmark figures for the released VM, but I except the HotSpot VM to be fairly impressive compared with other Java VM's. The Animorphic VM certainly was.
I would NOT expect it to exceed the performance of optimized C. Java is a much safer language than C (e.g., it always does array bounds checks and it doesn't allow pointer arithmetic), and that safety does have a price. However, to me, it is a price well worth paying for increased reliability.
At 1:10 PM -0500 4/28/99, Dwight Hughes wrote:
Just off the top of my head, I would think that the lack of runtime type info for Java's primitive types would make applying such dynamic optimization in any general fashion a rather daunting task in practice.
This isn't a problem, since the type info for built-in types is known at compile time, and can be retained for use by the run-time dynamic optimization system.
-- John
At 9:29 AM -0700 4/28/99, Travis Griggs wrote:
"Andrew C. Greenberg" wrote:
<snip> All kidding aside, it will be nice to see a serious, commercial dynamic optimization finally hit the decks. Unsurprisingly, Sun is already downplaying expectations, suggesting that Hotspot will be more significant on the server side than the client side, at least on the first release. (Quite true, since the server is likely to stay "warm" longer.)
I did find the following bullet points in the white paper very amusing. It appears that Sun has discovered that the following tricks, in addition to its admittedly way-cool dynamic profiling and adaptive optimizing, can lead to improved peformance in a VM:
<snip>
It was my understanding (and this is a somewhat rumour driven understanding) that the HotSpot VM, actually employs very little of the "dynamic profiling and adaptive optimization" developed by the Sun Self project and furthered by the Animorphic HotSpot work. That most of the improvements in performance are of the more conventional sort. Maybe others know more which would help dispel/validate this "rumour"?
<< File: ENVELOPE.TXT >>
One thing that would be neat to try is implementing a JavaByteCodeCompiler for Squeak and then build a framework based on the SystemTracer to convert an image into foreign VM formats. And then try running Squeak on the HotSpot VM (that is, if they've added enough to the byte code set to support Squeak).
Just for kicks.
- Stephen
... And then try running Squeak on the HotSpot VM (that is, if they've added enough to the byte code set to support Squeak).
No bytecodes have been added to the Java Virtual Machine, and I would not bet a lot of money on more bytecodes being added any time soon.
David Chase -- chase@naturalbridge.com NaturalBridge LLC -- http://www.naturalbridge.com
squeak-dev@lists.squeakfoundation.org