Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Schnelle Alternativen für Multiplikation mit 2

  Alt 16. Jan 2012, 14:44
Seit Jahren benutze ich die Funktionen succ und pred statt +1 und -1 für Integervariablen, weil ich mal las, daß diese effizienter (=schneller) ausgeführt werden können.
Es gibt auch noch Delphi-Referenz durchsuchenInc und Delphi-Referenz durchsuchenDec.

Ja, diese sind theoretisch schneller,
aber nein, praktisch sind sie es dann doch nicht, da der Compiler sowieso schon die +1 zu INC optimiert. (wenn man die Codeoptimierung nicht deaktivert hat)

Seit einiger Zeit benutze ich auch shl und shr statt Multiplikationen bzw. Divisionen mit Zweierpotenzen, denn auch diese sollen effizienter bzw. schneller sein.
Das Stimmt aber nur für vorzeichenlose Typen.
Bei z.B. dem vorzeichenbehafteten Integer würde dieses das Vorzeichen (-) verstören.

Aber auch hier optimiert der Compiler ein div 2 und * 2 über die entsprechenden Schiftoperationen, wenn er es erkennt.

Theoretisch wäre die Addition langsamer als ein Shift und die Multiplication langsamer als eine Addition ... also vom mathematischen Aufwand her,
aber erstmal optimiert der Compiler schon ganz ordentlich und dann verfügen auch nochmal die CPUs/FPUs über entsprechende Optimierungen, um besser/schneller rechnen zu können.
$2B or not $2B

Geändert von himitsu (16. Jan 2012 um 14:48 Uhr)
  Mit Zitat antworten Zitat