2010-04-30 3 views
5

Die Frage sagt so ziemlich alles, ich habe nach einer Antwort sogar durch die VM-Spezifikation gesucht, aber ich sage es nicht explizit.Ist der Hotspot JVM Bytecode Interpreter ein Tracing JIT?

+1

Ich nehme an, Hotpost bedeutet HotSpot. –

+0

@jtzero: Noch interessanter wäre etwas, das zeigt, ob ein "Tracing JIT", das bis auf eine einzelne Schleife optimieren kann (statt einer ganzen Methode, wie "reguläre" JIT), einen signifikanten Vorteil gegenüber einer Nichtverfolgung bietet -JIT;) Sprich, wenn ein regulärer JIT eine "mal 50" Beschleunigung anbietet und ein Tracing-JIT eine "mal 51" Beschleunigung, zähle mich als wirklich gar nicht beeindruckt :) – SyntaxT3rr0r

Antwort

4

Nr

Es gibt einige andere JVMs mit Tracing JITs, aber: HotPath und Maxine, zum Beispiel.

2

Hatte zu googeln, was ein "Tracing JIT" war, aber anscheinend ist es nicht.

> non-tracing JIT implementations (Sun’s Java VM

Aber es optimieren, was Sie vielleicht "hot spots" nennen.

Wie der Bytecode optimiert wird, ist nicht Teil der Spezifikation für den Bytecode.

0

Es ist nicht einmal ein JIT tatsächlich, geschweige denn ein 'Tracing JIT', was auch immer das sein könnte.

+3

Du bist pingelig. Klar, der Hotspot Bytecode * Interpreter * ist kein JIT * Compiler * ... aber aus dem Kontext sollte das offensichtlich sein, dass das OP das nicht bedeutet! –

3

Abgesehen: für diejenigen, die nicht wissen, was ein Tracing JIT ist, kommt die folgende Beschreibung von this page:

Obwohl Tracing JITs eine komplexe Technologie sind, das Kernkonzept ist über die Ausführung des heißen Optimierung Pfade in einem Programm. Der Schwerpunkt liegt speziell auf heißen Pfaden, die zum Anfang eines Pfades zurückkehren, der sich sehr wie eine Schleife anhört. Die traditionelle Definition einer Programmierschleife ist jedoch nur eine Teilmenge dieser heißen Pfade. Die breitere Definition umfasst Code, der Methoden und möglicherweise sogar Module umfasst. Diese breitere Definition einer Schleife ist eine so genannte Spur.

Verwandte Themen