Werden Java-Programm schneller wenn man sie als .exe kompiliert?
-
Werden Java-Programm schneller wenn man sie als .exe kompiliert?
Oder bleiben die etwa gleichschnell.
-
Normalerweise werden JAVA-Programme mit einen JIT-Compiler ausgeführt. D.h. der Java Interpreter übersetzt den Byte-Code während der Laufzeit in
Maschinencode. Ein kompiliertes Java-Programm ist daher i.d.R. nur unwesentlich schneller, als eines im Byte-Code, bzw. der Byte-Code ist fast so schnell wie der entsprechende Maschinencode.
-
Was habt ihr eigentlich immer alle mit eurer Performance? Programmiert ihr Treiber und Echtzeitanwendungen? Die wirklich langsamen Zeiten von Java sind seit 1.4 endlich vorbei!
-
KnownUnknown schrieb:
Normalerweise werden JAVA-Programme mit einen JIT-Compiler ausgeführt. D.h. der Java Interpreter übersetzt den Byte-Code während der Laufzeit in
Maschinencode. Ein kompiliertes Java-Programm ist daher i.d.R. nur unwesentlich schneller, als eines im Byte-Code, bzw. der Byte-Code ist fast so schnell wie der entsprechende Maschinencode.Jo, der JIT Compiler hat aber auch einen unschätzbaren Vorteil gegenüber des Vorkompilierens (wie bei C++ o.a.): Er kann WÄHREND der Ausführung optimieren.
-
<polemik>
Dann frage ich mich aber, warum eclipse zur Performancesteigerung auf native widgets zurückgreift.
</polemik>
-
Das ist aus einem völlig anderen Grund. Die Java-GUI ist halt nicht die schnellste, aber Eclipse ist überhaupt allgemein nicht sehr performant. Das liegt aber nur bedingt an Java, es gibt auch andere IDEs, die vollständig in Java gecodet sind. Das liegt auch gar nicht an Java, sondern an der IMPLEMENTIERUNG der GUI-Lib.
Hier gefällt mir die Implementierung des .Net Frameworks von MS besser. Vielleicht liegt es auch einfach daran, dass Sun mehr Plattformen mit einer VM versorgen muss als MS.
Das macht aber die Aussage, dass Java generell lahm ist, nicht richtiger. Gerade jetzt, wo die Prozessorarchitekturen immer weiter auseinandergehen, werden JIT-Compiler wahrscheinlich mehr trumpfen können.
-
cya schrieb:
Werden Java-Programm schneller wenn man sie als .exe kompiliert?
Was denn? Noch schneller? Einige können nie genug kriegen, heh?!
-
anonymer poster schrieb:
Die wirklich langsamen Zeiten von Java sind seit 1.4 endlich vorbei!
Psst... das muss jetzt heißen:
Die wirklich langsamen Zeiten von Java sind seit 5.0 endlich vorbei!
Sonst könnte man 5.0 diesbezüglich ja fast nicht mehr als riesigen Fortschritt bezeichnen.
-
---
-
Dirk Schnelle schrieb:
<polemik>
Dann frage ich mich aber, warum eclipse zur Performancesteigerung auf native widgets zurückgreift.
</polemik>Ich vermute einfach mal, dass sie den falschen Weg gegangen sind, weil sie ungeduldig waren. Swing wird mit jedem Release deutlich schneller und inzwischen gibt es nahezu keinen Grund mehr, Swing aus Performancegründen abzulehen. Stattdessen sollte man das SWT ablehnen, weil man dafür eine unnötige, plattformabhängige Bibliothek außerhalb der Standardbibliothek benötigt.
-
Optimizer schrieb:
Gerade jetzt, wo die Prozessorarchitekturen immer weiter auseinandergehen, werden JIT-Compiler wahrscheinlich mehr trumpfen können.
Gegenthese: Gerade jetzt, wo solche Dinge wie die EPIC-Architektur in Itanium-Prozessoren existieren, ist eine optimale Kompilierung sehr zeitaufwändig. Die Kompilierung zur Laufzeit wird dann zu einem deutlichen Overhead führen, durch den das Programm langsamer ist.