2013-11-26 13 views
8

(Ich weiß, dass dies wahrscheinlich ein Duplikat ist, aber es ist fast unmöglich, dieses Thema auf Google zu suchen oder auf SO.)Mögliche Werte für die „java.compiler“ Systemeigenschaft

wissen, dass ich die java.compiler Systemeigenschaft kann Nimm "NONE", was den JIT-Compiler deaktiviert, aber ich bin daran interessiert, welche anderen Werte da sind und welche Leistungsmerkmale sie haben.

Antwort

3

in den frühen Tagen ich es glauben Es war beabsichtigt, dass es Konkurrenz unter externen Verkäufern gibt, um eine externe .dll/.so zu liefern, die durch diese Eigenschaft genannt wird. symcjit.dll war die einzige, der ich je begegnete. Seit der Ankunft von Hotspot glaube ich, dass es ob Sole.

+0

ist irgendwo dort dokumentiert, dass dies veraltet ist? Die neueste aktuelle (zu diesem Zeitpunkt JDK 1.8) API-Dokumentation für java.lang.Compiler ist noch so formuliert, dass ich in der Lage sein werde, meinen eigenen JIT über die java.compiler-Eigenschaft einzubinden, aber bisher noch keine Menge an Überzeugen scheint zu funktionieren. Ich kann glauben, dass es veraltet ist, aber ich würde gerne etwas von Sun/Oracle sehen, auf das ich mich verlassen kann, bevor ich mein Projekt aufgäbe. –

4

java.compiler Eigenschaft ist der Name der Bibliothek Java Native-Compiler zu unterstützen:

Die Compiler Klasse Compiler und damit verbundene Dienstleistungen zu unterstützen Java-to-native-Code vorgesehen ist. Die Klasse Compiler führt nichts aus; Es dient als Platzhalter für eine JIT-Compiler-Implementierung. Wenn die Java Virtual Machine zum ersten Mal gestartet wird, ermittelt sie, ob die -Systemeigenschaft java.compiler vorhanden ist. (Systemeigenschaften sind zugänglich über System.getProperty (String) und System.getProperty (String, String). Wenn ja, wird angenommen, dass der Name einer Bibliothek (mit einer plattformabhängigen genauen Speicherort und Typ); System.loadLibrary (java.lang.String) aufgerufen wird, dass die Bibliothek zu laden. Wenn diese Belastung erfolgreich ist, wird die Funktion java_lang_Compiler_start() in dieser Bibliothek mit dem Namen genannt wird.