![]() |
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:
Delphi:
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-Quellcode:
c++:
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.
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; } |
AW: Delphi vs. C# vs C++
Zitat:
Delphi-Quellcode:
if (li mod 1000=0) then begin
button1.caption := inttostr(li); button1.Update(); end; |
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. |
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".
|
AW: Delphi vs. C# vs C++
Zitat:
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. |
AW: Delphi vs. C# vs C++
Zitat:
Kann es sein, dass die Express-Edition von Microsoft nicht die volle Leistung bringt ? ![]() 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 ? |
AW: Delphi vs. C# vs C++
Zitat:
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? |
AW: Delphi vs. C# vs C++
Zitat:
Zitat:
![]() |
AW: Delphi vs. C# vs C++
Zitat:
![]() ![]() |
AW: Delphi vs. C# vs C++
Zitat:
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 09:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz