some modifications (again) so that the calculations are done with the backendc + optimization
(X3 for me !)
Code: Select all
DisableDebugger
Procedure Limit1(x.l)
If x>255
x=255
ElseIf x<0
x=0
EndIf
ProcedureReturn x
EndProcedure
Procedure Limit2(x.l)
If x>255
ProcedureReturn 255
ElseIf x<0
ProcedureReturn 0
Else
ProcedureReturn x
EndIf
EndProcedure
Procedure Limit3(x.l)
If x>255
ProcedureReturn 255
ElseIf x<0
ProcedureReturn 0
EndIf
ProcedureReturn x
EndProcedure
Procedure Limit4(x.l)
If x & (~$FF) = 0
ProcedureReturn x
ElseIf x < 0
ProcedureReturn 0
Else
ProcedureReturn 255
EndIf
EndProcedure
Procedure Limit5(x.l)
If x < 0
ProcedureReturn 0
ElseIf x > 255
ProcedureReturn 255
EndIf
ProcedureReturn x
EndProcedure
#num = 11
#count = 10000000
StartTime = ElapsedMilliseconds()
For i = 0 To #count
s+Limit1(i)
Next
xx = ElapsedMilliseconds() - StartTime
StartTime = ElapsedMilliseconds()
For i = 0 To #count
s+Limit2(i)
Next
yy = ElapsedMilliseconds() - StartTime
StartTime = ElapsedMilliseconds()
For i = 0 To #count
s+Limit3(i)
Next
zz = ElapsedMilliseconds() - StartTime
StartTime = ElapsedMilliseconds()
For i = 0 To #count
s+Limit4(i)
Next
aa = ElapsedMilliseconds() - StartTime
StartTime = ElapsedMilliseconds()
For i = 0 To #count
s+Limit5(i)
Next
bb = ElapsedMilliseconds() - StartTime
EnableDebugger
Debug "somme : "+s
Debug xx
Debug yy
Debug zz
Debug aa
Debug bb