# java geschwindigkeit



## Bit2_Gosu (17. Nov 2007)

Hallo !

Ich habe mehrfach gehört, Java seie langsamer als C++. Nun kenne ich nur mit Java ein wenig und nicht auch C++. Manche von euch kennen sich vielleicht auch mit C++ aus.

Würden diese Leute dem zustimmen? Es würde mich einfach sehr interessieren.

Was ich aber auch gehört habe, ist dass das Java server JVM wesentlich schneller als das Client JVM sei. Ich hab jetzt mit google nicht wirklich rausfinden können, was beides unterscheidet... Wenn ich mit Eclipse eine Jar Datei erstelle, tue ich das normal mit der CLient JVM ?


----------



## Marco13 (17. Nov 2007)

Die JAR-Datei ist immer die gleiche. Mit der JVM wird die Jar dann nur _ausgeführt_. Soweit ich weiß ist der Haupt-Unterschied zwischen der Client- und der Server-JVM das Speichermanagement. Plakativ-vereinfacht: Bei der Server-JVM kann man etwas großzügiger und "fauler" mit dem Speicher umgehen, und das brachte früher einen kleinen Geschwindigkeitsvorteil. Bei Java 1.5 mag dieser Vorteil noch in einem nachweisbaren Rahmen liegen (je nach Anwendung vielleicht in der Größenordnung von 15%) aber bei Java 1.6 konnte ich da bisher keinen messbaren Unterschied mehr feststellen.

Zur Frage des Geschwindigkeitsunterschiedes von Java und C++ gibt es regelmäßig Diskussionen (und Flamewars  :roll: ), aber ich postuliere mal, dass (wenn es nicht um reines Numbercrunching geht) es für einen durchschnittlichen C++-Programmierer bei einer "normalen" Anwendug fast unmöglich ist, mit vertretbarem Zeitaufwand einen merklichen Geschwindigkeitsvorteil gegenüber einem Java-Programm zu erreichen.


----------



## Bit2_Gosu (17. Nov 2007)

ah super danke für die Infos !!

Was ich mich frage ist, warum dann verhältnismäßig so wenige Desktop Anwendungen in Java geschrieben sind. Es ist doch ein riesen Vorteil, wenn einen Anwendung dann neben Windows auch gleich auf zB. Linux läuft - und wenn java 1.6 genauso schnell ist.

Ich kenn mich ja nicht aus, aber vermute mal, dass mit Java hauptsächlich applets programmiert werden ?? Weil außer Eclipse kenne ich gar kein besseres Programm, das in Java geschrieben ist...


----------



## AlArenal (17. Nov 2007)

Bit2_Gosu hat gesagt.:
			
		

> *Ich kenn mich ja nicht aus*, aber vermute mal, dass mit Java hauptsächlich applets programmiert werden ?? Weil außer Eclipse kenne ich gar kein besseres Programm, das in Java geschrieben ist...



Danach hättest du besser einen Punkt, statt eines Kommas gemacht und hättest dir auf selbst eingestandene Ahnungslosigkeit basierende Vermutungen und Analysen gespart


----------



## Bit2_Gosu (17. Nov 2007)

Ok dann formuliere ich meine Frage mal anders:

Welche größeren Desktop Anwendungen in Java außer Eclipse gibt es denn so ?


----------



## Dandro (17. Nov 2007)

Azureus


----------



## L-ectron-X (17. Nov 2007)

Azureus, NetBeans, TV-Browser fallen mir da gleich ein.
Im OpenOffice werkelt zum Teil auch Java.


----------



## Bit2_Gosu (17. Nov 2007)

Ok aber mal ganz im ernst, ihr müsst doch zugeben, dass wir hier ein verhältnis von java zu c++ programmen von 5 zu 120 haben. Nero, Opera, Firefox, Google Earth, Hamachi, Teamspeak und und und... alles nicht in Java programmiert. Ich verstehe das irgendwie gar nicht, Java is doch so eine klasse Programmiersprache....

Warum gibt es so verhältnismäßig wenig Desktop Anwendungen in Java?

Hat da jemand eine Idee ?


----------



## Jango (18. Nov 2007)

Ich habe das Gefühl, der OP provoziert einen Flamewar.   :wink:


----------



## Bit2_Gosu (18. Nov 2007)

Eigentlich hatte ich das nicht vor, aber ich kanns ja mal versuchen:


Hallo !


Ich kenne viele Leute, die nur in C++ programmieren, die meinen, das Java viel langsamer ist, viel unsauber und dass Java viel öfter abstürzt als C++.
Die C++ Community wörtlich: "Leute, die heutzutage noch in Java programmieren, sind die größten trottel, die es geben kann".
Was sagt ihr als Java community dazu? Haben die C++ler recht? Oder ist es in echt vielleicht umgekehrt?
Ist C++ vielleicht der größte Müll, den ihr je gesehen habt? haben die C++ler nur gelogen?
Noch ein Zitat: "Wenn die Java community nicht wüssten, dass wir recht haben, könnten sie etwas gegen unsere Vorwürfe sagen. ABER DAS KÖNNEN SIE NICHT, WEIL SIE WISSEN DASS WIR RECHT HABEN!!". 
Stimmt das? Kann sich die Java community nicht wehren, weil Java wirklich wirklich extrem schlecht ist???? Könnt ihr euch nicht wehren???


----------



## me1357 (18. Nov 2007)

Bit2_Gosu hat gesagt.:
			
		

> [..] und dass Java viel öfter abstürzt als C++.


Also ich hab schon mehr C++-Compiler als Java-Compiler abstürzen sehen, oder wie soll man die Aussage verstehen?  :autsch:


----------



## Bit2_Gosu (18. Nov 2007)

mein letzter Kommentar ist inhaltlich nicht ganz ernst zu nehmen


----------



## AlArenal (18. Nov 2007)

Das scheint für den ganzen Thread zu gelten.

Frag mal Windows-Anwender wieviele Anwendungen sie kennen, die in Objective-C geschrieben sind - und dann frag mal Mac-User. Objective C ist demnach nicht ungeeigneter um Desktop-Anwendungen zu entwickeln, sondern plattformabhängig nur unterschiedlich stark verbreitet.

Frag doch lieber mal warum C++ serverseitig keine Rolle spielt. Ich denke nicht, dass Performance auf Servern keien Rolle spielt.. 

In der Praxis ist es eher so, dass Performance auf Clients nicht weiter wichtig ist. Wenn die Leute täglich 100 Spams sortieren, ist es relativ egal ob sie das auf nem allen 1.8 GHz P4 tun, oder auf nem 2.66 GHz Dual Core.... Produktivität hat in der Regel keine besondere Abhängigkeit von der Rechnerausstattung.


----------



## bronks (18. Nov 2007)

AlArenal hat gesagt.:
			
		

> ... Frag doch lieber mal warum C++ serverseitig keine Rolle spielt. Ich denke nicht, dass Performance auf Servern keien Rolle spielt..  ...


Der größte Vorteil ist m.E., daß man mit Java auf einem PC die Software entwickeln kann, welche später auf Serverhardware läuft. Mit CPP ist das nicht so einfach und günstig möglich.


----------



## Bit2_Gosu (18. Nov 2007)

ok danke für eure infos !!


----------



## Wildcard (19. Nov 2007)

Marco13 hat gesagt.:
			
		

> Soweit ich weiß ist der Haupt-Unterschied zwischen der Client- und der Server-JVM das Speichermanagement. Plakativ-vereinfacht: Bei der Server-JVM kann man etwas großzügiger und "fauler" mit dem Speicher umgehen, und das brachte früher einen kleinen Geschwindigkeitsvorteil. Bei Java 1.5 mag dieser Vorteil noch in einem nachweisbaren Rahmen liegen (je nach Anwendung vielleicht in der Größenordnung von 15%) aber bei Java 1.6 konnte ich da bisher keinen messbaren Unterschied mehr feststellen.


Der Hauptunterschied liegt im Verhalten von JIT und Hotspot Compiler. Die Server VM rechnet mit lang laufenden Programmen bei denen die Startup Zeit gegen die Laufzeit zur Nebensache wird. Der JIT optimiert daher viel früher und aggressiver.
Der Unterschied ist durchaus noch vorhanden (und zT auch sehr deutlich), aber in zukünftigen Java Versionen sollen die Unterschiede zwischen Server und Client VM abgeschafft werden.


----------



## thomator (20. Nov 2007)

Bit2_Gosu hat gesagt.:
			
		

> Ich kenne viele Leute, die nur in C++ programmieren, die meinen, das Java viel langsamer ist, viel unsauber und dass Java viel öfter abstürzt als C++.
> Die C++ Community wörtlich: "Leute, die heutzutage noch in Java programmieren, sind die größten trottel, die es geben kann".
> Was sagt ihr als Java community dazu? Haben die C++ler recht? Oder ist es in echt vielleicht umgekehrt?
> Ist C++ vielleicht der größte Müll, den ihr je gesehen habt? haben die C++ler nur gelogen?
> ...


Und dazu nur eines: Wer es nötig hat, sich auf dieses Niveau zu begeben, der hat wahrscheinlich nur die Baumschule besucht und kann sowieso nicht proggen, weder in C noch in anderen Sprachen. Von daher fühlt sich hier wahrscheinlich auch keiner so richtig angegriffen...


----------

