JAVA schneller als C++ ? Stimmt das???



  • Gregor schrieb:

    Mag sein, dass es noch schneller geht, aber andererseits reicht das vermutlich aus. Kein Mensch hat Reaktionszeiten im Bereich einiger 10 Mikrosekunden.

    Sorry, aber das ist einfach nur dämlich. Weil ein Mensch nicht schneller als 10ms reagieren kann, müssen es technische Systeme auch nicht können? lol?



  • TactX schrieb:

    Ist mir ehrlich gesagt scheissegal ob irgendwelche Javaianer glauben, dass Java für Echtzeitanwendungen geeignet ist. Auch sehe ich keinen Grund warum man ein Echtzeitsystem in Java realisieren sollte. Ich sehe keinen Vorteil von Java gegenüber den gängigen Methoden mit C, C++ und anderen Tools. Hier wurde auch keiner genannt. So what?

    Ich kann mir nicht helfen, aber wenn ein Projekt im (vermutlich) mehrstelligen Millionenbereich es fuer notwendig haelt, Java zu verwenden, wuerd ich ja fast vermuten dass es dafuer Gruende gibt. Oder glaubst du, alle Leute in dem Projekt Idioten sind und nur du bist superschlau? Weil so kommst du in diesem Thread hier rueber 🙄



  • Jester schrieb:

    Viel spannender ist aber ein anderer Punkt. Wenn Du das mit C++ für genau ein System offline optimierst, dann wird das kaum zu schlagen sein. Mit JIT-Compiling könnte man das selbe aber auf allen System erreichen, ohne ganz viele verschiedene Programmversionen auszuliefern.

    Ja, nur reden wir hier von einer Drohne wo die Hardware-Komponenten vorgegeben sind. Also kompilier ich meinen C++ Code in dem Fall mit allem drum und dran speziell für die Drohne. In solchen Embedded-Systemen bringt mir ein JIT wenig Vorteile. Selbst PGO gibts für Intel- und MS-Compiler, die die Laufzeitoptimierung eines JIT schon gut in die Ecke stellen können.



  • RHBaum schrieb:

    Man koennt auch nen BS bauen (gibts da nich schon ansaetze ? ^^) was komplett auf die beduerfnisse von java zugeschnitten ist ^^ und eigentlich nur ne JAVA RT mit bisserl schnickschnack ist ....
    (GC als API vom Betriebssystem ... mir wird grad anders ^^)
    der naechste schritt waere, prozessoren zu bauen, die bestimmte in java haeufige Befehle beschleunigen ...

    wem wuerde es wundern wenn das ding um laengen schneller wuerd als wie c++ aufn standard system ^^

    Niemanden, ist doch klar, dass man in so einer Drone kein 'standard system mit c++' einsetzt.

    Der vergleich von c++ und java hinkt vorne und hinten ^^ Es gibt halt randbedingungen die man ned einfach ignorieren sollte.

    Jo, hast doch selbst eben welche genannt, also wieso der Vergleich mit dem "Standardsystem", wenn der Vergleich eh hinkt?



  • Blue-Tiger schrieb:

    TactX schrieb:

    Ist mir ehrlich gesagt scheissegal ob irgendwelche Javaianer glauben, dass Java für Echtzeitanwendungen geeignet ist. Auch sehe ich keinen Grund warum man ein Echtzeitsystem in Java realisieren sollte. Ich sehe keinen Vorteil von Java gegenüber den gängigen Methoden mit C, C++ und anderen Tools. Hier wurde auch keiner genannt. So what?

    Ich kann mir nicht helfen, aber wenn ein Projekt im (vermutlich) mehrstelligen Millionenbereich es fuer notwendig haelt, Java zu verwenden, wuerd ich ja fast vermuten dass es dafuer Gruende gibt. Oder glaubst du, alle Leute in dem Projekt Idioten sind und nur du bist superschlau? Weil so kommst du in diesem Thread hier rueber 🙄

    Es wäre wahrlich nicht das erste Projekt in dem man krasse Fehlentscheidungen getroffen hat. Da wir aber nicht wissen wofür Java in diesem Fall genau verwendet wurde ist es eh albern darüber zu streiten. Die Flugregelung macht der Javapart sicher nicht. Wieso auch?



  • heise schrieb:

    Der Hersteller der Echtzeit-VM hat uns mittlerweile mitgeteilt, dass nicht die zeitkritische Steuerung der Barracuda in Java implementiert sei, sondern allein die Missionssoftware, die den festgelegten Kurs und weitere Daten verwaltet.

    d.h. es ist fuer die teile, die nicht soo kritisch sind..

    mfg aman..



  • Oh Wunder, oh Wunder 😉



  • ...sondern allein die Missionssoftware, die den festgelegten Kurs und weitere Daten verwaltet.



  • TactX schrieb:

    Sorry, aber das ist einfach nur dämlich. Weil ein Mensch nicht schneller als 10ms reagieren kann, müssen es technische Systeme auch nicht können? lol?

    Menschen können doch Flugzeuge fliegen, oder? ...sie können da schnell genug reagieren. ...so war das gemeint.



  • Gregor schrieb:

    TactX schrieb:

    Sorry, aber das ist einfach nur dämlich. Weil ein Mensch nicht schneller als 10ms reagieren kann, müssen es technische Systeme auch nicht können? lol?

    Menschen können doch Flugzeuge fliegen, oder? ...sie können da schnell genug reagieren. ...so war das gemeint.

    O.K., dann habe ich dich falsch verstanden, sorry.



  • um mal zum Thema zurückzukommen: "JAVA schneller als C++ ? Stimmt das??? " nein.



  • Stimmt das??? schrieb:

    um mal zum Thema zurückzukommen: "JAVA schneller als C++ ? Stimmt das??? " nein.

    richtig. java ist ne skriptsprache und in skriptsprachen kann man nicht programmieren



  • Stimmt das??? schrieb:

    um mal zum Thema zurückzukommen: "JAVA schneller als C++ ? Stimmt das??? " nein.

    Zum Thema: C++ ist VIEL VIEL VIEL Schneller als Krötenscheiße Java.
    Die VM macht ALLES Lahm. Das sagt schon der Name: Virtual Machine. Alles "Virtual" ist doch klar lahmer als pure native binaries.
    Ausserdem: GarbageContainer ! Der macht ALLES langsamer.
    Überhaupt macht jede Abstraktionsebene den Code lahmer. Wieso sind Spiele in Assembler so sau schnell ? Weil Assembler nur eine Ebene höher ist als Maschinencode. Richtige hardcore Oprimierungs-Profis programmieren eh ganze Spiele in Maschinencode. Maschinencode = Geschwindigkeit pur.



  • DEvent schrieb:

    Zum Thema: C++ ist VIEL VIEL VIEL Schneller als Krötenscheiße Java.
    Die VM macht ALLES Lahm. Das sagt schon der Name: Virtual Machine. Alles "Virtual" ist doch klar lahmer als pure native binaries.

    Ich hoffe das ist Ironie. Ansonsten weist du nicht, wie eine VM arbeitet. In numerischen Rechnungen (solange nicht grossartig mit speicher gespielt wird (neu allokiert/freigegeben) sind beide gleichschnell, konsultiere entsprechend Benchmarks. Liegt daran, dass fuer diese Sache auf die 'echte' Maschiene 1:1 runtergeschalten wird. Also erst denken dann posten.

    Ausserdem: GarbageContainer ! Der macht ALLES langsamer.

    So nicht richtig. Nur wenn man schlecht mit Speicher umgeht und damit riskiert, dass die GC (uebrigens garbage collection) mal zwischen drin anspringt.
    [/quote]
    Überhaupt macht jede Abstraktionsebene den Code lahmer. Wieso sind Spiele in Assembler so sau schnell ? Weil Assembler nur eine Ebene höher ist als Maschinencode.[/quote]
    Weil die quasi fast nie up-to-date sind? Im ernst. C++ ist eine riesige abstraktionsebene mehr im vgl zu C und es ist nicht langsamer. Mann, denk doch mal nach bevor du hier grossspurig Sachen behauptest.

    Schade dass wir nur um den 3. Platz spielen 😞 aber good game :schland:



  • Mann, denk doch mal nach bevor du hier grossspurig Sachen behauptest.

    Du erkennst Ironie auch nicht wenn man sie dir direkt unter die Nase reibt ?



  • Korbinian schrieb:

    Ich hoffe das ist Ironie.

    Da es leider genug Leute gibt, die immer noch die alte Maer glauben, war ich vorsichtig.



  • @TactX

    Es muss in einer definierten Antwortzeit auf ein Ereignis reagieren. Das dürfte wohl die allgemeine Definition sein. Warum willst du das z.B. gerade von mir
    wissen?

    Weil die Geschwindigkeit, in der reagiert wird völlig egal für die Def. ist. Die du ja richtig geschrieben hast. Wenn ich das Ergebnis innerhalt eines Tages haben will und auch bekomme. Dann habe ich ein Echtzeitsystem.
    Und was harte und weiche Anforderungen sind, das scheint auch nicht ganz klar zu sein.

    @Jester

    Zum einen könnte die Menge an derzeitig zur Verfügung stehenden Ressourcen betrachtet werden. Viel spannender ist aber ein anderer Punkt. Wenn Du das mit C++ für genau ein System offline optimierst, dann wird das kaum zu schlagen sein. Mit JIT-Compiling könnte man das selbe aber auf allen System erreichen, ohne ganz viele verschiedene Programmversionen auszuliefern.

    Okay, was ich eigentlich gar nicht bestreiten wollte war, dass ein JAVA Programm im Schnitt auf allen Maschinen schneller laufen kann, als ein speziell optimiertes C++ Programm.
    Wie genau könnte das Eingehen auf derzeitig verfügbare Ressourcen das Java Programm beschleunigen.
    Meine Frage geht eher dahin, ob es mit einem JIT möglich ist, ein offline optimal kompiliertes Programm zu schlagen. In dem eben auf Laufzeit Gegebenheiten eingegangen werden.

    Ich stelle mir da so was wie eine verbesserte Branchprediction, oder eine neue Anordnung des Bytecodes aus, um besser mit dem Cache zu harmonieren.
    Die B-Prediction kann aber schon die CPU übernehmen.
    Das neuordnen des Speichers kann ich mir aber ganz interessant vorstellen.
    Ich habe jetzt keine genauen Zahlen, aber angenommen eine Cacheline ist 4K lang, dann liegt da ja immer ein zusammenhängendes Stück (Haupt)Speicher drin. Wenn davon aber nur 1K dauernd benutzt werden, dann könnte man doch die restlichen 3K neu befüllen (natürlich im Hauptspeicher).
    Die Frage ist nur, kann man das erst zur Laufzeit erkennen?
    Ich hätte gerne Beispiele...
    Oder wird das gemacht?

    bis dann,
    jenz2



  • DEvent schrieb:

    Mann, denk doch mal nach bevor du hier grossspurig Sachen behauptest.

    Du erkennst Ironie auch nicht wenn man sie dir direkt unter die Nase reibt ?

    also als ironie war dies nur zu erahnen 🙄
    es gibt zuviele posts die genauso lauten und ernst gemeint sind.



  • jenz2 schrieb:

    Und was harte und weiche Anforderungen sind, das scheint auch nicht ganz klar zu sein.

    In der Tat benutze ich den Begriff "hart" in diesem Zusammenhang immer falsch. Ich versuche das zu ändern. 😉



  • [quote="TactXIn der Tat benutze ich den Begriff "hart" in diesem Zusammenhang immer falsch. Ich versuche das zu ändern. ;)[/quote]

    na dann ist ja gut. 🙂


Anmelden zum Antworten