Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Der Varianttyp und der Geschwindigkeitsverlust

  Alt 16. Jan 2010, 16:12
Zitat von DJ-SPM:
Nun lese ich überall, dass Variant "deutlich" langsamer sein soll. Ich würde jetzt gerne von euch wissen, wie "deutlich langsamer" das Lesen und Speichern sein wird? 1-2 Sekunden/ms etc.?
Probiere es doch einfach mal aus.

Die reine Zuweisung eines Variants ist um den Faktor 5 (bei Double) bzw. 10 (bei Integer) langsamer, da bei jedem Zugriff auf den Variant zunächst der Typ geprüft und dann per case die konkrete Zuweisung bzw. Rechnung durchgeführt wird.

1 Mio Zugriffe dauern bei mir (Integer) 0.0011s, Double (0.0026) und bei einem Variant 0.0119s.

Ich halte in den weitaus meisten Fällen jedoch andere Teile im Code für die wahren Performancebremsen. Die Vorteile von Variants überwiegen die paar Promille Performanceeinbuße, die sich in der Realität ergeben.

Wenn Du natürlich intensive Berechnungen bzw. Iterationen durchführst, solltest Du auf Variants verzichten und native Datentypen verwenden.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat