The question pretty much says it all, I've been looking around for an answer even through the VM spec but I it doesn't explicitly state it.
-
2I assume hotpost means HotSpot. – Tom Hawtin - tackline Apr 30 '10 at 13:49
-
@jtzero: even more interesting would be something showing if a "tracing JIT", which can optimize down to a single loop (instead of an entire method, like "regular" JIT do), offer any significant benefit over a non-tracing-JIT ;) Say, if a regular JIT offers a "times 50" speedup and a tracing-JIT offers a "times 51" speedup, count me as really not impressed at all :) – SyntaxT3rr0r Apr 30 '10 at 14:33
4 Answers
Aside: for those who don't know what a tracing JIT is, the following description comes from this page:
Although tracing JITs are a complex technology, the core concept is about optimizing execution of the hot paths in a program. The emphasis is specifically on hot paths that return to the start of a path which sounds very much like a loop. However, the traditional definition of a programming loop is only a subset of these hot paths. The broader definition includes code that spans methods and possibly even modules. This broader definition of a loop is what’s called a trace.

- 698,415
- 94
- 811
- 1,216
Had to google what a "tracing JIT" was, but apparently it isn't.
> non-tracing JIT implementations (Sun’s Java VM
But it does optimise what you might call "hot spots".
How bytecode is optimised will not be part of the specification for the bytecode.

- 145,806
- 30
- 211
- 305
It's not even a JIT actually, let alone a 'tracing JIT', whatever that might be.

- 305,947
- 44
- 307
- 483
-
4You are nit picking. Sure, the Hotspot bytecode *interpreter* is not a JIT *compiler* ... but it should be obvious from the context that the OP did not mean that! – Stephen C May 01 '10 at 07:50