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



  • jenz2 schrieb:

    Mich würde doch echt mal interessieren, was z. B TactX unter einem Echzeitsystem versteht....

    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?

    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?



  • jenz2 schrieb:

    Ich glaube kaum, dass es Compiler gibt, die spezial Befehle (z.B. MMX) irgendwelcher CPUs einfach für normal geschriebenen Code einsetzen können. Das kann auch der JIT nicht.

    afaik kann das der Intel-Compiler für C++. Warum sollte es ein JIT-Compiler dann nicht auch können?

    Angenommen, wir kompilieren ein Programm für genau ein System "offline" mit allen Optimiereungen. Wo kann da ein "online" Compiler noch was rauskitzeln.
    Das System ist ja bekannt, aber welche Laufzeitinformationen kann der dann noch auswerten. Und das sollen natürlich welche sein, die nicht durch die CPU erledigt werden(können).

    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.

    Startvorgänge sollen einfach mal nicht berücksichtigt werden.

    Ich fände das wirklich spannend, wenn das möglich wäre und wie das gemacht wird...

    Bis dahin,
    jenz[/quote]



  • TactX schrieb:

    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.

    na du weisst doch: in handgeschriebenen c und c++ codes können übelste bugs stecken, die gefahr für leib und leben bedeuten. da ist java durch z.b. laufzeitchecks besser geeignet oder ada, dessen output anschliessend durch nen c compiler gejagt wird...



  • Wer sagt denn, dass man handgeschriebenen Code nehmen muss? 😉



  • 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.


Anmelden zum Antworten