Delphi-PRAXiS
Seite 4 von 8   « Erste     234 56     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)

mkinzler 30. Jul 2015 14:53

AW: Delphi vs. C# vs C++
 
Diese Vermutung hatte ich. Wenn man aus 50000 5000 oder sogar 50 macht und sich an der Zeit nichts ändert, spricht es auch dafür.

C# (2015) benötigt sogar etwas weniger als Delphi (16,6 Sekunden)

VC++ (2015): 0 ms. Nach Abschalten der Optimierung sind es dann 103s

c#:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int li = 0;
            int lj = 0;
            int st = System.Environment.TickCount;

            for (li = 0; li < 50000; li++)
            {
                for (lj = 0; lj < 1000000; lj++)
                {
                }
 
            }
            int et = System.Environment.TickCount - st;
            Console.WriteLine(et);
            Console.ReadLine();
        }
    }
}
Delphi:
Delphi-Quellcode:
program Test;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, Windows;

  var li,lj:integer;
      st: Cardinal;
begin
  try
        li := 0;
        lj := 0;
        st := GetTickCount;
            for li:=0 to 50000 do
            begin
               for lj:=0 to 1000000 do
               begin

               end;
               {if (li mod 1000=0) then
               begin
                   WriteLn( li);
               end; }
            end;
        Writeln( IntToStr(GetTickCount - st));
        Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
c++:
Code:
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
#pragma optimize( "", off )

int main() {
   int i, j, k;
   DWORD st = GetTickCount();

   for (i = 0; i < 50000; i++)
      for (j = 0; j < 1000000; j++)
      {
         
      }

   DWORD et = GetTickCount();

   cout << (et - st);
   cin >> i;
   return 0;
}

luisk 30. Jul 2015 15:21

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

Zitat von Bernhard Geyer (Beitrag 1310355)

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.

Wohl übersehen, was dieses li mod 1000 bewirkt?
Delphi-Quellcode:
if (li mod 1000=0) then begin
                   button1.caption := inttostr(li);
                   button1.Update();
       end;

Bernhard Geyer 30. Jul 2015 15:22

AW: Delphi vs. C# vs C++
 
Vor einiger Zeit (mehrer Jahre) gabs mal 2-3 Artikel bezüglich Performancevergleich C/C++/Java/C# und Delphi.

Ergebnis war:

Im "Number-Crunshing" ist C/C++ vorne
In "normalen" Entwickeralttag (Objektorientierte Programmierung, Ableitung, Überladen von Methoden, ...) sind Delphi/Java/C# ähnlich schnell.
C++ war hier der "einsame" Verlierer.

Daniel 30. Jul 2015 15:24

AW: Delphi vs. C# vs C++
 
Es sollte schon allen klar sein, dass hier "nur" alle 1000 Durchläufe der Button aktualisiert wird. Aber bei 50 Mio. Durchläufen ist auch das schon einiges. "Einiges" im Sinne von "derart viel, dass es so sehr ins Gewicht fällt, dass alles andere quasi weggedrückt wird".

Bernhard Geyer 30. Jul 2015 15:26

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

Zitat von luisk (Beitrag 1310373)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1310355)

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.

Wohl übersehen, was dieses li mod 1000 bewirkt?
Delphi-Quellcode:
if (li mod 1000=0) then begin
                   button1.caption := inttostr(li);
                   button1.Update();
       end;

Nein, habe ich nicht! Genau so eine Logik haben/hatten wir hier auch in unserer Anwendung drin.
Wenn aber so ein Mod-Vergleich alle 1 ms kommt ist trotzdem die GUI-Aktualiserung das bremsende Element.
Haben mittlerweile ein Basisklass/Codefragement/Methode das eine "if DelayToLastUpdate > 300ms"-Abfrage drin hat.
Damit wird die GUI nur alle 300 ms aktualisiert (Und erst nach Aktualisierung wird die Vergleichszeit neu gestartet)
Damit habe ich Zeiten für länger andauernde Aktionen teilweise auf 1/5 der ursprünglichen Zeit verkürzen können.

luisk 30. Jul 2015 15:28

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

Zitat von mkinzler (Beitrag 1310365)

C# (2015) benötigt sogar etwas weniger als Delphi (16,6 Sekunden)

Das heißt, bei Dir läuft der Code in C# genauso schnell wie in Delphi, bzw. einen Tick schneller ?
Kann es sein, dass die Express-Edition von Microsoft nicht die volle Leistung bringt ?
http://www.chip.de/downloads/Visual-..._36594529.html

ich hab jetzt auch mal die Konsolen-Beispiele von mkinzler auf Delphi und C# Express 2015 mit der Hauptschleife bis 5000 laufen lassen.
Delphi war in 1,684 Sekunden fertig,
C# Express 2015 nach 19,797 sec.

Wird die Express Edition demnach von Microsoft ausgebremst ?

stahli 30. Jul 2015 15:31

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

Zitat von luisk (Beitrag 1310373)
Wohl übersehen, was dieses li mod 1000 bewirkt

Ich hab Dich ja oben noch in Schutz genommen. ;-)
Aber andererseits haben die Kollegen natürlich Recht, dass das Testbeispiel nicht wirklich taugt.
Wenn es auf Performance ankommt, sollte man kein GUI-Refresh dazwischen schieben.
Wenn man dies macht, kann einem die Performance nicht so wichtig sein.

Also Deine Anforderungen sind da nicht wirklich klar.
Was willst Du denn eigentlich erreichen?

BUG 30. Jul 2015 15:32

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

Zitat von Bernhard Geyer (Beitrag 1310375)
C++ war hier der "einsame" Verlierer.

Hu, wirklich? Da würde ich gerne mal was genaueres drüber lesen.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1310378)
Damit habe ich Zeiten für länger andauernde Aktionen teilweise auf 1/5 der ursprünglichen Zeit verkürzen können.

Da gab es mal was schönes in Gamasutra: Don't Sync and Load.

Bernhard Geyer 30. Jul 2015 15:39

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

Zitat von BUG (Beitrag 1310383)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1310375)
C++ war hier der "einsame" Verlierer.

Hu, wirklich? Da würde ich gerne mal was genaueres drüber lesen.

http://www.heise.de/artikel-archiv/c...el-Duesentrieb
http://www.heise.de/artikel-archiv/c...el-Duesentrieb

Bernhard Geyer 30. Jul 2015 15:41

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

Zitat von stahli (Beitrag 1310382)
Also Deine Anforderungen sind da nicht wirklich klar.
Was willst Du denn eigentlich erreichen?

:thumb:
Gute Frage. Solche Aufgaben/Anforderungen kommt mir verdächtig nach
"Wir haben schon immer mit Delph/C/Java/..." gemacht und jetzt sollen wir was anders machen. Schnell mal schauen ob wir Killerargumente finden".


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 Uhr.
Seite 4 von 8   « Erste     234 56     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