AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Performance Vergleich zu C#

Ein Thema von 4dk2 · begonnen am 22. Nov 2019 · letzter Beitrag vom 5. Dez 2019
Antwort Antwort
Seite 3 von 5     123 45      
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#21

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 12:56
Neee hab die schon explizit alle auf x86 gestellt. Um das "irgendwie" gleich zu halten.
Aber 64bit bringt bei mir zum vergleich, keinen Gewinn/Verlangsamung. (bei Core und Standard)
Das wäre aber auch merkwürdig wenn doch.
Keineswegs merkwürdig - x86 hat im Vergleich zu x64 eine sehr limitierte Anzahl an verfügbaren Registern, daher kommt es da eher zu Register pressure.

Edit: Ich hab übrigens herausgefunden, was hier dafür sorgt, dass es in meinem Fall langsamer wurde. Ich habe timeges als long deklariert, da ich mir dachte, nuja Stopwatch.ElapsedMilliseconds ist ja auch long, also machts da keinen Sinn, das in double umzuwandeln. Allerdings sorgt das wohl bei x86 dafür dass er vermutlich ähnlich wie bei Delphi die Schleife nicht gut optimiert. Wenn timeges double ist, dann ist's auch unter x86 schnell.

Hach ja, Microbenchmarks sind toll...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (22. Nov 2019 um 13:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#22

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 14:12
Müsste man nicht auch Taskswitches verhindern, um vergleichbare Ergebnisse zu erhalten?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#23

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 14:45
Müsste man nicht auch Taskswitches verhindern, um vergleichbare Ergebnisse zu erhalten?
Solang man eine singlethreaded Benchmark hat, reicht es in der Regel, sicher zu stellen, dass die Maschine auf der sie läuft nicht gerade viele Resourcen verbraucht und somit die Benchmark ohne Beeinträchtigung läuft.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#24

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 14:49
fang ich gar nicht erst an... yay native compiled...
Ach komm, nur weil die theoretischen Vorteile nicht genutzt werden...
Solange die meisten meiner Programme von Platte und/oder DB ausgebremst werden, mach ich mir um 10 Sekunden keine Gedanken.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#25

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 14:57
Ach komm, nur weil die theoretischen Vorteile nicht genutzt werden...
Es soll auch Softwarebereiche geben, die CPU und nicht IO bound sind.
Wenn der Compiler nen besseren Job machen würde, dann bräuchte auch nicht die Hälfte der System.pas in Assembler geschrieben werden, damit sie schnell(er) ist.

Außerdem geht's mir hier primär um die antiquierte Ansicht und Propaganda, die von vielen verbreitet und geglaubt wird, dass nativ kompiliert automatisch schnell und managed/interpreted/jitted langsam sei.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#26

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 15:16
Außerdem geht's mir hier primär um die antiquierte Ansicht und Propaganda, die von vielen verbreitet und geglaubt wird, dass nativ kompiliert automatisch schnell und managed/interpreted/jitted langsam sei.
Hatten wir hier grad auf Mips mit Java: sehr langsam, nicht optimiert. Da macht man dann auch erstmal gar nichts, auch nicht Assembler.
Man kann es vielleicht so sagen: Automatisch wird gar nichts optimiert, wenn also überhaupt eine Automatik existiert, dann nur die der Langsamkeit.
Es scheint darauf anzukommen, welche Interessenlage in den jeweiligen Ökosystemen besteht.
Gruß, Jo
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#27

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 16:53
Hallo,
Zitat:
managed/interpreted/jitted langsam sei.
Das ist jetzt wirklich antiquiert.
Heiko
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#28

AW: Delphi Performance Vergleich zu C#

  Alt 22. Nov 2019, 19:26
fang ich gar nicht erst an... yay native compiled...
Ach komm, nur weil die theoretischen Vorteile nicht genutzt werden...
Solange die meisten meiner Programme von Platte und/oder DB ausgebremst werden, mach ich mir um 10 Sekunden keine Gedanken.

Gruß
K-H
Also bei mir (Echtzeit-Maschinen-Steuerungen)
Kommt es schon drauf an, ob das fronted hinterher kommt. (Datenerfassung/Auswertung)
Und ich find es trotzdem wichtig und auch interessant mal sowas
Mit so einfachen Tests zu beleuchten!
Das bei 90% der Anwendungen die CPU nicht das bottleneck ist, ist ja klar.

Bei mir war es so, das Event gesteuert, Daten berechnet wurden, und das sich als zu langsam
Herausgestellt hat. Per Interfaced Aufruf wurd es dann schneller aber dann wollte ich es genau wissen.

Falls es jemanden interessiert hier die c# Performance Charts
Um per Parameter ein Ergebnis zu bekommen.
1. normaler (Aufruf wie im Beispiel)
2. delegates (func<int,int>)
3. interfaced (dauert unerwartet lange)
4. Events (ist sogar langsamer als der normale Delphi Aufruf xD )
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#29

AW: Delphi Performance Vergleich zu C#

  Alt 25. Nov 2019, 15:01
Ich kann mir schon vorstellen, dass der JIT erheblich schneller ist.
Einfach daher, dass er just in time die CPU kennt und somit passend optimieren kann.
Der Delphi-Compiler kann ja nur doof generischen x86 Code erzeugen.
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#30

AW: Delphi Performance Vergleich zu C#

  Alt 26. Nov 2019, 15:15

Erzähl mir nochmal einer, dass nativ kompiliert so viel geiler ist als diese teuflische managed Zeugs!
Stevie, ich hab da nen .Net Fall, wo der generierte Code ähnlich wie bei Delphi langsam wird!

Also Normale Berechnung in ner Schleife:
Code:
const int Iterations = 1000000000;
int x = 3;
for (int i = 0; i < Iterations; i++)
{
   x = x * 3;
}
Geschwindigkeit bei meiner CPU = ~500 ms.
So wenn ich aber jetzt DAVOR/Danach x per reference/out benutze, wirds höllisch langsam.
Dann fällt der Speed auf ~3000 ms.


Code:
void Init(ref int x)
{
   x = 3;
}
.....

Init(ref x);
for (int i = 0; i < Iterations; i++)
{
  x = x * 3;
}
//Init(ref x);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.
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