Delphi-PRAXiS
Seite 3 von 8     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi vs. C# vs C++ (https://www.delphipraxis.net/186058-delphi-vs-c-vs-c.html)

Union 30. Jul 2015 13:48

AW: Delphi vs. C# vs C++
 
Zitat:

Zitat von luisk (Beitrag 1310336)
Das UI spielt doch bei dem Vergleich keine Rolle, da eh nur bei
if (li mod 1000=0) then begin

Hast Du eine Messung ausgeführt um Deine Vermutung zu verifizieren?

luisk 30. Jul 2015 13:51

AW: Delphi vs. C# vs C++
 
Zitat:

Zitat von Union (Beitrag 1310338)
Hast Du eine Messung ausgeführt um Deine Vermutung zu verifizieren?

Genau !
Kannst Du evtl. mal den Code bei C++ messen, um zu vergleichen ?
Hab leider kein C++ zur Hand.

JasonDX 30. Jul 2015 13:58

AW: Delphi vs. C# vs C++
 
Zitat:

Zitat von luisk (Beitrag 1310334)
Wie schnell läuft dieses einfache Programm auf MS C++ im Vergleich zu C# und Delphi !

Ich kanns leider nicht mit MS C++ testen, hab gerade nur einen gcc zur Hand (hab deshalb auch das UI-Update rausgeschmissen - es geht ja um die Schleife)

Code:
int main() {
  int i, j;
  for (i = 0; i < 50000; i++)
    for (j = 0; j < 1000000; j++)
      ; // kein UI-Update. Lenkt nur ab.
  return 0;
}

Ergebnis: Das Programm läuft im einstelligen Millisekundenbereich (1-2ms), wobei anzumerken ist, dass in dem Bereich Messungen im Verhältnis ungenau sind; Programm läuft aber in wenigen Millisekunden.
Ich habe auch mit den Werten rumgespielt, statt 50000 auch 50 oder 1000000, das Ergebnis blieb dabei aber nahezu konstant (+/-1ms, nehme an das sind Messungenauigkeiten).

Fazit daraus: Sinnvolle Performance-Messung ist schwieriger, als es aussieht.

Stevie 30. Jul 2015 13:58

AW: Delphi vs. C# vs C++
 
Debug oder Release Config?

Einfacher oder mehrfacher Durchlauf (Stichwort JiT)?

Union 30. Jul 2015 14:00

AW: Delphi vs. C# vs C++
 
Wenn der gcc schlau optimiert, macht er sowieso das draus:
Code:
int main() {
  return 0;
}

Phoenix 30. Jul 2015 14:01

AW: Delphi vs. C# vs C++
 
Natürlich macht die Ausgabe am UI extrem viel aus.

Eine Ausgabe am UI ist grob so langsam wie einige tausende Schleifendurchläufe in denen nichts sonst gemacht wird.
Das heisst wenn Du alle 1000 Durchläufe stoppst, um irgendwas zu machen was grob geschätzt um die 8 - 12 mal so viel Zeit braucht wie die 1000 durchzuzählen, misst Du ausschliesslich die Darstellung am UI.

Beschäftige Dich erstmal mit den theoretischen Grundlagen von korrekten Performance-Tests bevor Du versuchst einen komplett unsinnigen Test mit anderen Sprachen / Plattformen durchführen zu lassen.

Und das ist auch der Grund, warum Dir hier niemand dieses unsinnige Beispiel mit C++ testen mag. Die Leute hier haben keine Lust sich mit sowas offensichtlich sinnlosem zu beschäftigen.

mkinzler 30. Jul 2015 14:07

AW: Delphi vs. C# vs C++
 
Zitat:

Ergebnis: Das Programm läuft im einstelligen Millisekundenbereich (1-2ms), wobei anzumerken ist, dass in dem Bereich Messungen im Verhältnis ungenau sind; Programm läuft aber in wenigen Millisekunden.
Ich habe auch mit den Werten rumgespielt, statt 50000 auch 50 oder 1000000, das Ergebnis blieb dabei aber nahezu konstant (+/-1ms, nehme an das sind Messungenauigkeiten).
Wirklich nur 2 ms?

Der selbe Code als Konsolenanwendung in Delphi benötigt rund 17 Sekunden.

TRomano 30. Jul 2015 14:14

AW: Delphi vs. C# vs C++
 
Ich finde diese Art von Messungen sinnfrei und wenn man schon C++,C# und Delphi vergleicht sollte man sich mit dem Debugger auch mal den erzeugten Assembler-Code ansehen. Vielleicht optimiert ein guter/aggressiver Compiler die einfachen (sinnlosen) Schleifen auch einfach weg und macht nix wie eben "return 0". Da kann doch nichts vergleichen !
Wenn man die CPU-Arithmetik und die Qualität des erzeugten Codes testen will muss man schon etwas Anspruchvolleres proggen. Dann könnte man auch testen, ob der Compiler die Befehlssätze (Stichwort SSE-SSE4.2) der CPU sinnvoll nutzt.

JasonDX 30. Jul 2015 14:14

AW: Delphi vs. C# vs C++
 
Zitat:

Zitat von mkinzler (Beitrag 1310349)
Zitat:

Ergebnis: Das Programm läuft im einstelligen Millisekundenbereich (1-2ms), wobei anzumerken ist, dass in dem Bereich Messungen im Verhältnis ungenau sind; Programm läuft aber in wenigen Millisekunden.
Ich habe auch mit den Werten rumgespielt, statt 50000 auch 50 oder 1000000, das Ergebnis blieb dabei aber nahezu konstant (+/-1ms, nehme an das sind Messungenauigkeiten).
Wirklich nur 2 ms?

Der selbe Code als Konsolenanwendung in Delphi benötigt rund 17 Sekunden.

Das hängt eben stark vom Compiler ab. Debug vs. Release, und wie viel er optimiert. Union hats richtig erkannt - der Compiler überspringt einfach die leere(n) Schleifen. Das war auch der Sinn hinter dem Beispiel: "Einfach so" Performance messen und vergleichen bringt kein sinnvolles Ergebnis. Haben zwar schon viele angedeutet, wurden aber überhört - der TE wollte eine Messung für C++ sehen, vielleicht öffnet das die Augen.

Bernhard Geyer 30. Jul 2015 14:22

AW: Delphi vs. C# vs C++
 
Zitat:

Zitat von luisk (Beitrag 1310308)
Hallo,
hab mal einen Vergleich zwischen Delphi 6 und MS C# Express 2015 gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var li,lj:integer;
begin
        li := 0;
        lj := 0;
            for li:=0 to 50000 do begin
               for lj:=0 to 1000000  do begin

                end;
                if (li mod 1000=0) then begin
                   button1.caption := inttostr(li);
                   button1.Update();
                end;
            end;
end;
C#:
Code:
       private void button1_Click(object sender, EventArgs e)
        {
            int li = 0;
            int lj = 0;
            for (li=0;li<50000;li++)
            {
                for(lj=0;lj<1000000;lj++)
                {                 
                }
                if (li % 1000 == 0)
                {
                    button1.Text = li.ToString();
                    button1.Update();
                }
            }
        }
Ergebnis: Delphi ist 10 mal schneller als C#
Kann jemand Angaben zu C++ machen ?

Das Ergebnis ist das bei blödsinniger permanenten GUI-Aktualisierung (welche die Funktionzeit eh vervielfacht) Delphi schneller diese blödsinnige Permanete GUI-Aktualsierung durchführen kann. Weiter Aussagen zu Performancevergleich Delphi <-> C# lassen sich nicht ableiten.

Und wie heißt es so schön: "Wer Mist mist, mist Mist"


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 Uhr.
Seite 3 von 8     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz