BCB vs VC++,C#,Delphi ----> Java doppelt so schnell wie C++ ?



  • Auf normale Anforderungen mag Java ja schnell sein, aber ich hab noch
    keine schnelle Java-Swing-GUI gesehen. 🤡 🤡



  • Humes Beitrag: http://www.c-plusplus.net/forum/viewtopic.php?t=50314&postdays=0&postorder=asc&start=60

    Im uebrigen, laesst sich der C++ Quellcode bei mir nich uebersetzten. Die scheinen
    es echt drauf zu haben...

    mfg
    v R



  • zum Thema heise und Know How (vorallem was C/C++ betrifft) sollten wir uns noch einmal den folgenden Artikel ins Gedächtniss rufen http://www.heise.de/security/artikel/38982

    Das heise immer mehr Muell produziert, ist schon erstaunlich, bis auf die iX, die aber auch schlechter wurde.

    Generell finde ich solche Performance Tests fragwuerdig. Was soll das jetzt aussagen? Das C++ in Real-Life Anwendungen langsam ist? Da kann ich doch nur lachen, wenn ich das naechste mal versuche Eclipse zu starten. Das C++ eine schlechte Programmiersprache ist? Natürlich ist C++ eine schlechte Programmiersprache, wenn man so einen Code schreibt, wie die heise Leute. Wobei man eh nicht vergessen sollte, dass C++ eben nur ein Standard ist und man kann wohl schlecht den C++ Standard mit der Java Implementierung vergleichen. Die heise Leute hatten ja schon so wenig Ahnung und glauben, dass was sie fuer MSVC++ geschrieben haette, waer C++.

    Btw. halte ich eh nichts von Leuten, die Leerzeichen in Verzeichniss/Dateinamen machen 🙂 und jetzt lösch ich die (sc)heise wieder 😉



  • hallo,

    ach was, lasst euch von dem quatsch nicht kirre machen, jedes kind weiss das java auf dem desktop eine lahme krücke ist, die in den meisten fällen für den anwender zu einer zumutung ausarten, das ist die realität, da lass ich mich auch von diesen komischen tests nicht von abbringen, ansonsten würden ja desktopanwendungen in java geschrieben, die komplette spieleindustrie würde java nehemn, schon mal einen 3d ego-shoot in java gesehen?

    also, an diesem test kann sich aufgeilen wer will, ich glaube nur an meine eigenen tests, das was ich in der vergangenheit geshen habe...

    mfg
    murphy



  • Da kann ich doch nur lachen, wenn ich das naechste mal versuche Eclipse zu starten

    vielleicht versteh ich ja nicht genau was du meinst, aber was hat das Öffnen einer Java-Anwendung mit der Geschwindigkeit von C++ zu tun? Ist C++ schnell wenn Java langsam ist? Irgendwie blödsinnig. Außerdem wird ja beim Starten von Eclipse eine ganze Menge in der VM initialisiert und compiliert (u.U.) , so dass das Starten ansich bei Java zwar eher langsam ist, was aber noch nicht zwangsläufig heißt, daß Java-Programme wenn sie erst mal hochgeladen sind, dann auch langsam sein brauchen. Ein Rennwagen dessen Motor ne halbe Minute braucht um anzuspringen is trotzdem schneller als ein Trrabi dessen Motor nur ne Sekunde braucht. Wobei der Vergleich jetzt nicht implizieren soll, daß ich der Meinung bin , Java wäre schneller als C++ 🙂



  • 😃 😃 😃 Hab mir den Code mal ganz kurz angeguckt. Selten so gelacht sag ich nur. Welcher n00b hat das denn zusammengezimmert? Die meinen wohl weil sie von jeder Sprache 10% beherrschen können sie einen Vergleich antreten. Die Klasse CSingleEntry ist ja wohl ein Witz an sich. Warum haben die die CStrings per Value übergeben und nicht per Reference? usw.

    Wow 😮 :

    DWORD std, min, sec, ms;
    std = Millisecs / 3600000; 
    min = Millisecs % 3600000 / 60000; 
    sec = Millisecs % 60000 / 1000;
    ms = Millisecs % 1000;
    

    Nicht schlecht ist auch die Namensgebung: "PrintListList", "BuildListList".
    Schreeeeecklich! Ich lese nie wieder die CT. Da kann ich mir doch gleich die ComputerBILD kaufen.

    Hauptsache Delphi und Java schneiden gut ab. Man wär ja dumm wenn man das elendig langsame C++ lernen würde 🙄 . Demnächst der Vergleich: "Brainfuck vs. ASM, C vs. JavaScript" Ich wette ich weiß schon wer besser abschneidet.



  • Hmm schrieb:

    Außerdem wird ja beim Starten von Eclipse eine ganze Menge in der VM initialisiert und compiliert (u.U.) , so dass das Starten ansich bei Java zwar eher langsam ist, was aber noch nicht zwangsläufig heißt, daß Java-Programme wenn sie erst mal hochgeladen sind, dann auch langsam sein brauchen.

    der Start einer Anwendung gehoert fuer mich zur Anwendung. Natuerlich ist es besser, wenn man eine Anwendung hat, die laenger zum starten braucht und schneller ergebnisse liefert. Aber mit solchen Geschwindigkeitsmessungen kann man im GUI Bereich nicht arbeiten. Da geht es nur drum, dass die Anwendung so schnell arbeitet, wie der User klicken kann (hoffe du verstehst, was ich damit meine :)) (BTW. gibt es natuerlich auch C++ Software, die lange zum laden braucht (OpenOffice und Mozilla sind 2 negativ Beispiele, die mir gerade einfallen, aber deren Code ist teilweise gar nicht mal so weit von dem Ct Code entfernt ;))

    MastaH schrieb:

    Demnächst der Vergleich: "Brainfuck vs. ASM, C vs. JavaScript" Ich wette ich weiß schon wer besser abschneidet.

    😃



  • MaSTaH schrieb:

    Hauptsache Delphi und Java schneiden gut ab.

    Java hat in dem Artikel überhaupt nicht gut abgeschnitten. Zudem wurde im Artikel eine Menge Unwahres über Java gesagt. Zum Beispiel wurde behauptet, es gäber kein "JWord". Als was bezeichnen die denn dann die Einzelprogramme von ThinkFree Office? Es wurde auch behauptet, Methoden wären in Java immer virtuell. Kennen die nichtmal das "final"-Schlüsselwort?



  • kingruedi schrieb:

    BTW. gibt es natuerlich auch C++ Software, die lange zum laden braucht (OpenOffice und Mozilla sind 2 negativ Beispiele, die mir gerade einfallen, aber deren Code ist teilweise gar nicht mal so weit von dem Ct Code entfernt 😉

    ja, bei C++-Programmen liegt es immer am Programmierer, wenn das Programm lahm ist. Bei Java-Programmen ist immer die Programmiersprache schuld. Gut, dass wir das jetzt mal klargestellt haben.



  • der Unterschied ist, dass ich noch nie eine Java Anwendung gesehen habe, die schnell bootet. Das liegt aber nicht wirklich in der Hand des Programmierers, da bei Java der Bytecode noch entsprechend compiliert werden muss, was natuerlich bei groesseren Projekten laenger dauert. Deswegen ist Java an der Lade-Zeit schuld. Natuerlich kann man einen Java Compiler nehmen um das Problem zu beheben. Dann liegt die Ladezeit wieder (zumindest zum gleichen Teil wei bei C++) in den Händen des Programmierers.



  • Womit wir wieder bei der Frage wären: In welcher Programmiersprache wurde ASM geschrieben.

    Und wie sieht es mit
    C/C++
    JAVA
    PHP
    PERL
    und wie sie nicht alle heißen

    aus



  • kingruedi schrieb:

    der Unterschied ist, dass ich noch nie eine Java Anwendung gesehen habe, die schnell bootet. Das liegt aber nicht wirklich in der Hand des Programmierers,

    Doch, das liegt in der Hand des Programmierers. Die JVM braucht vielleicht eine Sekunde zum Starten. Alles weitere ist vom Programmierer abhängig. Wenn ein Programm jetzt 10 Sekunden zum Starten braucht, dann heißt das, dass eine ganze Menge beim Start des Programms erledigt wird. ...und Java lädt geradezu dazu ein, allemöglichen skurilen Sachen beim Start des Programms zu machen.

    Ich durchsuche bei meinem aktuellen Projekt zum Beispiel alle Verzeichnisse des Programms beim Start und suche mir bestimmte Dateien zusammen, die ich dann letztendlich in eine Datenstruktur stecke. Das kostet natürlich Zeit, weil das momentan wohl etwa 400 Dateien sind, die ich beim Start des Programms durchgehe. Mir ist das aber reichlich egal, weil ich die Startzeit für ziemlich irrelevant halte. Der Vorteil, den ich als Programmierer durch die veränderte und sauberere Codestruktur habe ist mir wichtiger. Ich bin mir fast sicher, dass die meisten Javaprogrammierer hier eine andere Mentalität als die meisten C++-Programmierer haben.



  • lass mich raten, wenn ich jetzt sage, dass Java Applikationen viel RAM verbrauchen, dann kann ich mir von dir anhören, dass das einfach daran liegt, wie Java Programmierer denken und die lieber ein sauberes Programm schreiben, anstelle RAM zu sparen?

    Ich glaube kaum, dass sich C++ und Java Programmierer stark von einander unterscheiden. Ich meine, es programmieren sehr viele C++ Programmierer auch Java und natürlich auch umgekehrt und dann sind die Sprachen recht aehnlich. Warum sollte jemand anders Java als C++ programmieren?

    Vielleicht sollte man mal messen, wie lang die JRE fuers Jitten brauch (aber bitte nicht wieder auf die dumme idee kommen ein Hello World zu nehmen und dann erzaehlen zu wollen, dass die JRE nur 0.xy ms braucht 🙄 )



  • hm,

    letzendlich ist das Prgramm in jeder Sprache nicht optimal umgesetzt worden. War ja wahrscheinlich auch nicht Sinn der Sache. Der Autor wollte, so wie ich das sehe, möglichst identischen Code vergleichen.

    Beim BCB hat er auch ne TList genommen, obwohl eine TList wohl recht wenig mit C++ zu tun hat. 🙄
    (Komischerweise ist, hab ich getestet, ist im BCB die TList sogar schneller als ein vector. Das haut mich auch mal wieder von den Socken. Ist der Compiler vom BCB denn so schlecht optimniert ? Klar, mir ist bewusst, das Borland seine Energie in Delphi steckt und der BCB nur hier und da etwas Zeit abbekommt. Aber so ?)

    Naja, zumindest sind alle Implementationen nicht 100% sauber. Das hat er aber auch im Artikel gesagt. Er wollt ja auch nicht optimieren sondern eine allgemeine Lösung nachgehen, die, wie er sagt, "ottonormal- Programmierer" (was immer das auch ist) anstreben würde.

    Sicherlich kann man hier und da recht gut optimieren. Das kann man aber in den anderen Sprachen auch und ist bei sowas nicht ausschlaggebend denn es war ja nicht die Optimierungsfähigkeit eines Programmierers auf dem Prüfstand.



  • damit es übersichtlich bleibt,

    sollten wir den Thread HIER weiterführen.

    @Mod: Mach hier zu..



  • kingruedi schrieb:

    lass mich raten, wenn ich jetzt sage, dass Java Applikationen viel RAM verbrauchen, dann kann ich mir von dir anhören, dass das einfach daran liegt, wie Java Programmierer denken und die lieber ein sauberes Programm schreiben, anstelle RAM zu sparen?

    Was das RAM betrifft, bringt Java von sich aus einen sehr großen Overhead mit. Das stimmt und das ist sicherlich auch ein Nachteil von Java.

    Warum sollte jemand anders Java als C++ programmieren?

    Weil sonst soetwas herauskommt, wie bei diesem Benchmark. Das C++-Programm ist dann einfach lahm! 🤡



  • @Mod: Mach hier zu..

    2 verschiedene Themen - 2 verschiedene Threads 😡



  • in welchem Punkt ist das Thema anders? 🙄

    naja, ist mir egal. Dann lasst ihn hat auf. Das stört mich doch nicht...



  • AndreasW schrieb:

    in welchem Punkt ist das Thema anders?

    In diesem Thread geht es in erster Linie um den c't-Benchmark. Im anderen Thread wurde der eigentlich nur mal so am Rande ewähnt.



  • Das Programm ListList_BCB_VU6 hat wohl ein Delphianer geschrieben 😃
    Schon alleine das Umschreiben folgender Zeilen der Routine BuildListList genügte schon, um die Laufzeit des Programms (bBenchCreate (1 Mio Calls)) deutlich zu beschleunigen.

    Ursprüngliche Codezeilen, Time 23:684

    NewName="";
    for(int y=1; y<=NameLength; y++)
       NewName = NewName + char((int)'a' + (rand() % 26));
    

    Modifizierte Codezeilen, Time 10:385

    NewName.SetLength(NameLength);
    for(char *p=NewName.c_str(), y=1; y<=NameLength; y++)
       *p=char((int)'a' + (rand() % 26));
    

    Die Zeiten wurden auf meinem System Pentium 800MHZ gemessen.


Anmelden zum Antworten