Hello Folks Detta är ju iofs riktigt, men det "hjälper" ju bara om man ska dividera med en konstant. Om man ska räkna med olika tal varje gång blir det ca 20% långsammare istället. Såhär kan koden se ut då: Ett litet tillägg till bara, dividerar man heltal skall man använda operatorn \ istället för /. Den förra är ca 4 ggr snabbare. Optimera Era divisionberäkningar
Har skrivit om inlägget blev lite missvisande.
När man gör många beräkningar i tex en loop på decimala tal
kan man vinna uträkningstid om man använder principen,
istället för X / Y kan man skriva X * (1 / Y)
Option Explicit
Dim start As Single
Dim Normal As Single
Dim Inverted As Single
Private Sub Command1_Click()
Dim i As Long, ret As Single
Normal = 1453.25
start = Timer
For i = 1 To 10000000
ret = 25.3246 / Normal
Next 'i
Label1.Caption = Timer - start
End Sub
Private Sub Command2_Click()
Den här proceduren är ca 20 % snabbare
Dim i As Long, ret As Single
Inverted = 1 / 1453.25
start = Timer
For i = 1 To 10000000
ret = 25.3246 * Inverted
Next 'i
Label2.Caption = Timer - start
End Sub
mvh
SvenSv: Optimera Era divisionberäkningar
Dim start As Single
Dim Normal As Single
Private Sub Command1_Click()
Dim i As Long, ret As Single
Normal = 1453.25
start = Timer
For i = 1 To 10000000
ret = 25.3246 / Normal
Next 'i
Label1.Caption = Timer - start
End Sub
Private Sub Command2_Click()
'Den här proceduren är inte alls ca 20 % snabbare
Dim i As Long, ret As Single
start = Timer
For i = 1 To 10000000
ret = 25.3246 * (1 / 1453.25)
Next 'i
Label2.Caption = Timer - start
End Sub
Ingen kritik mot dej Sven, ville bara göra alla uppmärksamma på att det är i detta "specialfall" det ökar prestandan...
/JohanSv: Optimera Era divisionberäkningar
//Tord