Das ewige Thema Java-Performance



  • Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum Neuigkeiten aus der realen Welt verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ich habe geglaubt das hany von meinen bruder ist abgestürtz, das java spiel braucht 15 sekunden um zu starten
    naja das nur neben bei

    GPC schrieb:

    Mit dem nächsten Sprung auf Java 5.0 kann man auch wieder erhebliche

    ist nicht grade 1.5 aktuel?

    GPC schrieb:

    Aber da stellt sich eine andere Frage: Braucht man überhaupt noch die totale Performance?
    Ich meine, lassen wir die Games und Simulationsprogramme für Großrechner mal raus, einen 3 GHZ PC mit massig RAM und flotter HDD bekommt man für 700 EURO nachgeschmissen.

    1. wenn p2p, windows xp bonbon style, viren scenner, firewall, mail programm usw. im hintergund mit laufen ist performenc auch ein thema
    je mehr rechenleitung man hat desdo mehr programme will man gleichzeitig benutzen (oder besser toleriert sie im hintergrund)

    2. du darfs nicht davon ausgehen was du oder deine freunde für ein pc haben, in büros stehen immer noch hunderte <1GHz Rechner und sie funktionieren gut



  • Oh, wieder ein neuer Flamewar... 😃

    Also, zum Thema Geschwindigkeit von Java gegenüber C++:
    Klar, Java hat schon erhebliche Fortschritte gemacht, aber dass es schneller werden kann als C++ glaube ich eher nicht. Java hat gewisse Features, die es zwangsläufig ausbremsen. Durch Just-In-Time-Compiling wird das Problem des langsamen Interpretierens nach und nach ganz wegfallen. Aber der Garbage Collector frisst Ressourcen und die Bereichsprüfung bei Arrays braucht auch ihre Zeit. Zeiger (in C/C++) können sinnvoll eingesetzt auch die Geschwindigkeit steigern
    Noch was: Wo hast du deine Tabelle her?

    Müssen alle Anwendungen schnell sein?
    Na ja, es nervt schon, wenn z.B. OpenOffice (MS-Office ist auch nicht viel besser) ersteinmal ewig lädt. Genauso nervt es, wenn irgendwelche Mega-H4X0r meinen, sie müssten auf ihrer Webseite unbedingt einen Java-Newsticker einbauen, was den Browser beim ersten Aufruf der Seite unnötig ausbremst, weil er erst die JVM laden muss. Es geht mir nicht pauschal um alle Seiten, die Java verwenden, sondern nur um Webseiten, auf denen das nur eine unnütze Spielerei ist. Flash ist auch so ne Sache: Was ist, wenn jemand das PlugIn nicht hat (es gibt z.B. kein Flash-Plugin von Macromedia für FreeBSD) und sich eine Seite anschauen will, die eigentlich bloß ein Container für eine Flash-Animation ist? Ok, das war etwas OT, aber ich konnte es mir nicht verkneifen.
    Ein weiteres Problem besteht darin, dass nicht alle einen 3GHz-Monsterrechner haben und sich nicht jedes Jahr einen neuen Rechner kaufen wollen. Deshalb ist Performance schon wichtig. Schau dir nur mal die Anforderungen von Windows Longhorn an, dann weißt du, was ich meine. Viel Geschwindigkeit geht auch wegen sinnlosen Spielereien drauf, da kommt es gar nicht so sehr auf die verwendete Sprache an.

    Zur Plattformunabhängigkeit:
    Das ist wirklich ein immer wichtiger werdendes Thema, besonders in Zeiten, in denen Linux und andere alternative Betriebssysteme mehr Zulauf finden. Aber man muss sagen, da hat sich schon ziemlich viel getan: Mit gtk+/gtkmm oder wxWindows kann man schon ganz gut portable Programme schreiben. Ok, neukompilieren muss man schon noch, aber mal ehrlich: Ist das wirklich so schlimm? Wenn man klug programmiert, ist das doch kein Problem und der Zeitaufwand ist im Verhältnis zur Entwicklungszeit auch eher gering. Man braucht einen Compiler für die entsprechende Plattform, das ist das eigentliche Problem, aber notfalls lässt man sich das Programm z.B. vom Linuxuser seines Vertrauens kompilieren. Testen sollte man Java-Programme sowieso auch auf anderen Plattformen, wenn man es mit der Plattformunabhängigkeit ernst meint (die Tücke steckt bei Java im Detail).



  • GPC schrieb:

    Die Performance kommt der von C++ immer näher. Ob sie erreicht wird ist fraglich, manche behaupten es wäre möglich Java schneller als C++ zu machen. Das glaube ich aber erst wenn ich's sehe.

    das ist keine frage der sprache.
    das liegt mehr an der programmstruktur und der fähigkeit des compilers den code zu optimieren. man kann ohne probleme 2 programme basteln die das gleiche tun, eins in java, eins in c++ und das c++ -prg ist viel langsamer weil es grützig programmiert wurde.

    GPC schrieb:

    Witzigerweise sind die JVM's auch in C++ geschrieben, verzichten kann also auch auf C++ trotzdem nicht.

    nee, sonst bräuchte die jvm ja eine zweite jvm und die wiederum eine usw.
    aber java-compiler könnte man prima in java selbst coden. das macht sun aber nicht, weil sie nicht komplett alles neu schreiben wollen.

    GPC schrieb:

    Ok, uns Programmier erfreut es zugegebenermaßen nicht gerade wenn z.B. die IDE ewig lädt (NetBeans, JBuilder), aber gemessen an der PC-nutzenden Bevölkerung sind wir eine echte Minderheit.

    ich nehme nur jcreator. ist zwar ein spartanisches tool aber hat wenigstens nicht so'n speicherhunger wie netbeans, eclipse und so'n zeugs.

    GPC schrieb:

    Java(zumindest die J2ME) wurde schließlich auch für den Einsatz im kleinen Bereich mitkonzipiert (Kühlschrank, Handy...). Also kann es nicht so unperformant sein. Um genau zu sein ist der Basisinterpreter 40 KByte und zusätzliche Standardbibliotheken 175 KBte groß = macht 215 KByte.

    wobei du nicht vergessen darfst. dass in solchen handies fette 32-bit controller eingesetzt werden, mit einigen mb an speicher. für die ist das kein problem

    GPC schrieb:

    So klein ist keine andere Programmiersprache.

    wenn man richtig kleine systeme beharkt geht (ausser assembler) nur c (ohne ++). auf solchen systemen sieht java kein land.



  • Gerard schrieb:

    ist nicht grade 1.5 aktuel?

    Nein, die aktuelle Version heißt tatsächlich 5.0. Die haben wohl ein paar Versionsnummern übersprungen.



  • Es gibt schon seit ner Ewigkeit C für µController. Seit wann gibt es nochmal Java auf Handys? :p



  • net schrieb:

    aber java-compiler könnte man prima in java selbst coden. das macht sun aber nicht, weil sie nicht komplett alles neu schreiben wollen.

    javac wurde in Java geschrieben.

    Wir könnten Wetten abschließen, wie viele Seiten der Thread hier bekommen wird. Ich tippe auf 5 (ein MOD könnte mir ja helfen und wir teilen dann den Gewinn) 😃



  • interpreter schrieb:

    javac wurde in Java geschrieben.

    wow, hätt ich nicht gedacht.



  • Juchu,

    wieder ein Thread, der die Welt verändert. Ich tippe mal auf ca. 15-20 Seiten, bevor er geschlossen wird. 🕶



  • CarstenJ schrieb:

    Ich tippe mal auf ca. 15-20 Seiten, bevor er geschlossen wird. 🕶

    Intervalle sind unfair 🤡



  • Ok, 18 Seiten! 😉



  • CarstenJ schrieb:

    Ok, 18 Seiten! 😉

    ich tippe auf 4 seiten
    aber dann wird er nicht geschlossen, sondern es kommt nichts neues mehr



  • CarstenJ schrieb:

    Ok, 18 Seiten! 😉

    :p
    Das ist die einzig sinnvolle Methode, wie man auf so einen Thread reagieren kann: Ihn mit OT Postings ins Lächerliche ziehen 🕶



  • Ja, zumal ja jeder weiss, dass C++ die absolute obermegaruler Sprache ist, wogegen nix und niemand in diesem Universum ankommt und die auch 1000 mal schneller ist als Assembler.



  • Ich find Java toll. Es ist so schön bequem während dem Programmstart einen Kaffee holen zu können oder aufs Klo zu gehen 😃 .



  • Ich bin da optimistischer und tippe auf 14 Seiten.

    GPC schrieb:

    Klar, da Java zu sagen wir mal 20% interpretiert ist kann es nie so schnell sein wie eine kompilierte Sprache wie C++.

    Was sollen diese 20% sein? Ich behaupte mal frech, dass die VM sich im Großen und Ganzen darauf beschränkt, den JIT-Compiler rüberzujagen und dann gar nichts mehr interpretiert. Vielleicht mit ein paar Ausnahmen, wenn man Reflection nutzt, da woaß i's net.

    Mit dem nächsten Sprung auf Java 5.0 kann man auch wieder erhebliche Verbesserungen erwarten.
    Die Performance kommt der von C++ immer näher. Ob sie erreicht wird ist fraglich, manche behaupten es wäre möglich Java schneller als C++ zu machen. Das glaube ich aber erst wenn ich's sehe.

    Das hängt vom Anwendungsfall ab. Java kann durchaus schneller sein als C++. Kann auch durchaus anders rum sein.

    Aber da stellt sich eine andere Frage: Braucht man überhaupt noch die totale Performance?

    Ja! Aber die holt man sich heutzutage nur noch selten über irgendwelche Byte-Hacks.

    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.

    Diese Aussage ist ebenfalls nicht richtig. Der Code wird zur Laufzeit compiliert und liegt als Native Code im RAM vor. Desweiteren kann die VM (Stichwort HotSpot) Optimierungen vornehmen, die bei compilierten Sprachen nur mit einer Menge Probedurchgänge möglich sind.

    Und um ehrlich zu sein ich merke den Unterschied deutlich, so ist z.B. Eclipse sehr schnell, schaue ich mir andere Javaprogramme an merke ich doch deutlich, dass die GUI einfach langsamer als die von "normalen" Anwendungen ist. bei einer GUI aus dem .NET Framework kann ich das nicht feststellen (ebenso wie z.B. in Eclipse).

    Naja, ich benutze Java 5.0 beta 2 und habe mit Swing keine Probleme festgestellt.

    Steven schrieb:

    Aber der Garbage Collector frisst Ressourcen ...

    It depends...
    Garbage Collection kann auch durchaus schneller sein als manuelle Speicherverwaltung. Oder schreibst du wirklich jedesmal einen absolut für diesen Zweck optimalen Allokator?



  • Ok,

    Steven schrieb:

    Es gibt schon seit ner Ewigkeit C für µController. Seit wann gibt es nochmal Java auf Handys? :p

    Ok, 1:0 für dich, hab ich nicht beachtet. Aber da könnte man auch mit Asm ran.

    An alle die meine vermeintliche Inkompetenz in C++ rügen: Zählt mir mal diese enormen Entwicklungen von C++ auf!

    Die Daten stammen aus einem pdf Dokument das den Titel Evaluating Game Performance in Java trägt. In diesem Dokument wird Java und C++ analysiert, speziell in Betracht auf performance und geprüft ob sich Java für spiele (richtige also GTA, CS, Unreal) eignen würde.
    Meldet euch falls der Link erwünscht ist.



  • Meldet euch falls der Link erwünscht ist.

    Warum postest du ihn nicht einfach?! Wen das nicht interessiert, liest es einfach nicht..... 🙄





  • Ich bin gewiss kein Experte, aber wenn man manche Vergleiche zwischen Java und C++ überfliegt, stellt man oft fest, dass der Tester entweder die eine oder die andere Sprache nicht beherrscht. So sind die Ergebnisse sehr unterschiedlich und imho auch nicht unbedingt representativ. Ich denke, wenn man wirklich Programmierer ist, dann gehören einfach verschiedene Sprachen und Tools zum Repertoire und unterschiedliche Aufgaben erfordern eben unterschiedliche Lösungen.

    Wenn jemand wie er oder sie, welche unzweifelhaft beides beherrschen, so einen Vergleich machen, dann kann man davon ausgehen, dass es aussagekräftig und kompetent ist.


Anmelden zum Antworten