Das ewige Thema Java-Performance
-
..oder doch???...
-
...hab etwas Wein getrunken...
-
..und bin etwas angetrunken...
-
...und weil müde bin...
-
*Seite 5 einweih
-
...(ich) hör ich jetzt auf und geh ins Bettchen...muhahaha...
-
Sorry, dass ich dich unterbrochen habe. Aber ich wollte einfach persönlich sicherstellen, dass net nicht gewinnt
-
Kein Problem, das war es wert. (Ich hoffe nur, das wird nicht gelöscht
)
-
CarstenJ schrieb:
Kein Problem, das war es wert. (Ich hoffe nur, das wird nicht gelöscht
)
ICH hoffe, dass der Thread jetzt geschlossen wird.
-
SirLant schrieb:
Und wie soll ein Javaprogramm schneller sein als ein kompilliertes Programm? Dazu müsste die JVM entfernt werden und das javaprogramm ebenfalls kompilliert werden, da die JVM ganz einfach auch Zeit braucht welche sie dem Programm nunmal klauen muss.
Nein. Das ist alleine schon deshalb falsch, weil du von einer idealisierten Welt ausgehst, in der die Compiler nicht suboptimale Programme sind, die von Menschen programmiert wurden, sondern perfekte Programme, die den optimalen Output produzieren. Davon ist man weit entfernt. Aus diesem Grund haben solche theoretischen Betrachtungen, wie "die JVM braucht ja selbst auch Zeit" keinerlei Bedeutung.
Gleiches gilt für die Standardbibliotheken usw.!
(ich komm jetzt mal nicht mit Argumenten wie "Die JVM hat zur Laufzeit mehr Informationen zur Optimierung zur Verfügung als es normale Compiler haben")
Abgesehen davon müssen Java-Programme überhaupt nicht schneller als C++-Programme laufen: Früher war die Performance von Java ein Grund gegen Java. Es geht ja nur darum, dass dieser Nachteil von Java größtenteils verschwunden ist. Es reicht vollkommen, dass Java relativ nah an C++ herangekommen ist, was die Ausführungsgeschwindigkeit der Programme betrifft. Wenn sich jemand nicht mehr fragt, wieviel langsamer Java ist, sondern ob Java oder C++ schneller ist, dann zeigt er, dass er den Grund für diese Vergleiche nicht mehr kennt. Wenn die Frage so lautet, dann hat Java also in jedem Fall schon gewonnen.
-
GPC schrieb:
An alle die meine vermeintliche Inkompetenz in C++ rügen: Zählt mir mal diese enormen Entwicklungen von C++ auf!
-
Gregor schrieb:
SirLant schrieb:
Und wie soll ein Javaprogramm schneller sein als ein kompilliertes Programm? Dazu müsste die JVM entfernt werden und das javaprogramm ebenfalls kompilliert werden, da die JVM ganz einfach auch Zeit braucht welche sie dem Programm nunmal klauen muss.
Nein. Das ist alleine schon deshalb falsch, weil du von einer idealisierten Welt ausgehst, in der die Compiler nicht suboptimale Programme sind, die von Menschen programmiert wurden, sondern perfekte Programme, die den optimalen Output produzieren. Davon ist man weit entfernt. Aus diesem Grund haben solche theoretischen Betrachtungen, wie "die JVM braucht ja selbst auch Zeit" keinerlei Bedeutung.
Aber die JVM ist ja auch nicht perfekt wodurch sich dies ja wieder ausgleicht.
-
MaSTaH schrieb:
Sollen wir uns jetzt die 100 Links durchlesen? Warum bringst du nicht einfach ein paar Beispiele, was sich an der Sprache C++ die letzten Jahre so geändert hat?
2 ...
Das ist keine Verbesserung/Weiterentwicklung der Sprache sonder lediglich eine weitere Bibliothek.
-
SirLant schrieb:
Aber die JVM ist ja auch nicht perfekt wodurch sich dies ja wieder ausgleicht.
Du hast keinerlei Daten darüber, was wie gut programmiert wurde. Also kannst du auch keine Aussage darüber treffen, ob sich soetwas ausgleicht. Vielleicht ist es ja auch so, dass es dank der geringeren Komplexität leichter ist, einen sehr guten Jitter für Java zu schreiben, als einen sehr guten Compiler für C++. Wer weiß.
Mein Punkt ist ja auch nur, dass man mit einer solchen Argumentation nicht weiter kommt. Wenn man wissen will, wie sich verschiedene C++-Compiler und verschiedene JVMs in ganz bestimmten Fällen verhalten, dann muss man entsprechende Messungen machen.
-
interpreter schrieb:
Warum bringst du nicht einfach ein paar Beispiele, was sich an der Sprache C++ die letzten Jahre so geändert hat?
Seit 1998 hat sich AFAIK nichts mehr verändert, aber natürlich wird schon die ganze Zeit an einer Überarbeitung der Sprache gearbeitet. Bei C++ läuft das Verfahren halt etwas anders als bei Java oder meinetwegen C# ab. Bei Java gibt es vielleicht alle 2 Jahre eine neue Version, bei C++ vielleicht alle 10 Jahre. Das heißt aber nicht, dass sich Java schneller als C++ entwickelt. Die Unterschiede zwischen den einzelnen Javaversionen sind nicht sooo groß. Vielleicht macht C++ diesbezüglich viel größere Schritte.
Abgesehen davon ging es hier doch um Performance, oder? Das hat nichts mit der Entwicklung der Sprache zu tun, sondern mit der Entwicklung der Compiler, mit der Entwicklung von Standardbibliotheken usw.!
-
interpreter schrieb:
MaSTaH schrieb:
Sollen wir uns jetzt die 100 Links durchlesen? Warum bringst du nicht einfach ein paar Beispiele, was sich an der Sprache C++ die letzten Jahre so geändert hat?
Warum liest du nicht einfach ein paar Links? Warum soll ich dir hier einen fertigen Text präsentieren? Das sollte nur zeigen, dass die Entwicklung von C++ nicht stagniert (wie ja vom Threadersteller behauptet wurde).
interpreter schrieb:
Das ist keine Verbesserung/Weiterentwicklung der Sprache sonder lediglich eine weitere Bibliothek.
...die aber in Teilen in den neuen Standard einfließen wird. Das war auch nur die indirekte Antwort auf die Aussage des Threaderstellers, dass die Swing-Library ständig weiterentwickelt wird (früher im Thread). Was hat das bitte mit der Sprache Java zu tun?
-
MaSTaH schrieb:
...die aber in Teilen in den neuen Standard einfließen wird. Das war auch nur die Antwort auf die Aussage des Threaderstellers, dass die Swing-Library ständig weiterentwickelt wird. Was hat das bitte mit der Sprache Java zu tun?
Swing gehört zur Standardbibliothek von Java und gilt seit langer Zeit als Performance-Schwachpunkt (was mir persönlich noch nicht aufgefallen ist). Da es in diesem Thread um Performance geht, ist es doch vollkommen normal, wenn darauf hingewiesen wird, dass an Swing und der Swing-Performance ständig Verbesserungen vorgenommen werden. In jeder neuen Javaversion wird Swing ein gutes Stück schneller.
-
MaSTaH schrieb:
Warum liest du nicht einfach ein paar Links? Warum soll ich dir hier einen fertigen Text präsentieren? Das sollte nur zeigen, dass die Entwicklung von C++ nicht stagniert (wie ja vom Threadersteller behauptet wurde).
Die letzten 6,7,8 usw stagniert die Entwicklung der Sprache C++ sehr wohl. M
...die aber in Teilen in den neuen Standard einfließen wird.
Einfließen wird. Und wann kommt der? In 4 Jahren? 5 Jahren? ...
Das war auch nur die indirekte Antwort auf die Aussage des Threaderstellers, dass die Swing-Library ständig weiterentwickelt wird (früher im Thread). Was hat das bitte mit der Sprache Java zu tun?
Nichts. Dennoch unterliegt die Sprache Java einer ständigen Weiterentwicklung (Generics, Autoboxing usw).
-
Hat ja niemand bestritten, aber ich wollte nur klarstellen, dass an C++ auch gearbeitet wird. Wenn man wüsste wann der neue Standard kommt würde man wohl kaum C++ 0x schreiben. 0x legt aber nahe, dass es wohl noch in diesem Jahrzehnt so weit sein wird. Bei Java wird einfach immer in kleineren Happen mit den Neuerungen rausgerückt, was den Anschein erweckt die Sprache sei "lebendiger".
Btw. kann man boost auch nutzen ohne auf den neuen Standard zu warten.
-
Außerdem steht hinter Java eine Firma, was der Weiterentwicklung natürlich hilfreich ist.