Test1:
Code: Alles auswählen
SetThreadPriority_(GetCurrentThread_(),#THREAD_PRIORITY_TIME_CRITICAL)
#r = 500000000
Time0 = ElapsedMilliseconds()
For i = 0 To #r-1
!XOR EAX, EAX
!MOV AL, 3
!MOV EBX, EAX
Next
Time0 = ElapsedMilliseconds() - Time0
Time1 = ElapsedMilliseconds()
For i = 0 To #r-1
!MOV AL, 3
!MOV EBX, EAX
Next
Time1 = ElapsedMilliseconds() - Time1
MessageRequester("",Str(time0)+" "+Str(time1))
Code: Alles auswählen
tmp1 = 0
tmp2 = 0
tmp3 = 0
SetThreadPriority_(GetCurrentThread_(),#THREAD_PRIORITY_TIME_CRITICAL)
#r = 500000000
Time0 = ElapsedMilliseconds()
For i = 0 To #r-1
!MOV EBX, [v_tmp1] ; 1 uop (D0)
!INC EBX ; 1 uop (D1)
!ADD EAX, [v_tmp2] ; 2 uops (D0)
!ADD [v_tmp3], EAX ; 4 uops (D0)
Next
Time0 = ElapsedMilliseconds() - Time0
Time1 = ElapsedMilliseconds()
For i = 0 To #r-1
!ADD EAX, [v_tmp2] ; 2 uops (D0)
!MOV EBX, [v_tmp1] ; 1 uop (D1)
!INC EBX ; 1 uop (D2)
!ADD [v_tmp3], EAX ; 4 uops (D0)
Next
Time1 = ElapsedMilliseconds() - Time1
MessageRequester("",Str(time0)+" "+Str(time1))
Meine Ergebnisse:
-AMD Athlon XP 2000+
-meinen und Remis Optimierer
-Test1: 1600 1750
-Test2: 1765 1328