oldsqldma schrieb:
Du wirst auch nie einen Benchmark finden, der sagt, daß eine Sprache wirklich schneller ist.
wie auch, mit jedem Anwendungsfall, kann es anders aussehen.
Ich meine viel mehr einen fairen Benchmark, der verschiedene Szenarien testet und dort auch auf die Eigenheiten der Sprache eingeht. Wenn eine Sprache nunmal erst nach einigen Minuten sich richtig gut und sinnvoll kompiliert hat, kann ich einen Test nicht nach 20 Sekunden beenden lssen.
oldsqldma schrieb:
Bei Java reist der GC schon manchmal richtig tiefe, wenn auch verdammt kurze Performence einbrüche.
Das wirst du bei C(++) nicht haben.
teilweise ja, aber da kann mit manuellem Tuning des Garbage Collectors und der richtigen Wahl (es gibt verschiedene) wirklich es sehr stark den eigenen Anforderungen anpassen. Also für ne Server-Software haben wir 2 Tage investiert und eine verdammt gute Konfiguration entwickelt womit die Performance so gut wie gar nicht einbricht (immermal ganz kurze GC-Operationen und wenig Daten in der Old-Generation)
oldsqldma schrieb:
Das Java nach einigen Minuten das beste Kompilat gefunden hat, ist m.E. einfach ein Problem von Java.
Java wurde halt nie als extrem schnelle Sprache gebaut
wie ich vorher gesagt habe, würde ich es nicht als Problem sondern als Designentscheidung beschreiben. Ein C(++)-Programm muss jeweils für die CPU-Architektur und ggf. Betriebssystem neu kompiliert werden, bei Java ging man eben einen anderen Weg, dass der Bytecode erstmal ganz schnell in Maschinencode kompiliert wird (ähnlich gcc -O0) und dann immerwieder während der Laufzeit optimiert und der Anführung angepasst wird (dynamische Optimierung).
Im Grunde ist das, was als "nicht schnell" bezeichnet wird, also die Cross-Platform-Designenscheidung, würde man die Sprache Java (nicht die Platform

) so nativ kompilieren wie C(++) wären die Unterschiede wahrscheinlich geringer.
oldsqldma schrieb:
Wenn ich einen Treiber schreiben will, bleibt mir allerdings keine andere Wahl, da hab ich "kaum" Auswahl.
C, C++, D und einige Randsprachen, wofür es kaum Experten gibt.
natürlich, da wird dir auch keiner wiedersprechen, auf Grund des Low-Levels sind dies eben "General Purpose"-Sprachen mit denen man alles machen kann, ohne Frage.
oldsqldma schrieb:
PS: Schrecklichstes Java Performence ist wohl das Spiel "Minecraft", was nur so mit Ressourcen um sich schmeißt, total unnötig. Das ganze mit XNA z.B. würde kaum Performence Probleme ergeben.
Joa, und aus solchen Gründen (und Vuze) hat Java dieses miserabele Bild. Schlampig programmierte Software, die Ressourcen ohne Ende nutzt und somit auf Java abfärbt.
Genauso muss man aber auch sagen, dass diese Entwickler in einer anderen Sprache genau den gleichen Mist gebaut hätten und es immernoch ineffizient wäre.
Die Programmierer sind i.R. an sowas Schuld, nicht die Plattform.
Das Einstiegslevel in Sprachen wie Java, PHP, Python usw ist eben so gering, wodurch jeder schnelle Erfolge zielen können, egal ob die Software gut oder schlecht ist.