If $CmdLine[0] <> 1 Or $CmdLine[1] <> "1" Then Exit Global $sPath_Ini = @ScriptDir & "\Benchmark.ini" Global $iLoop = Number(IniRead($sPath_Ini, "Loop", "Cnt", "0")) _BM_For($iLoop) _BM_While($iLoop) _BM_Array($iLoop) _BM_Struct($iLoop) _BM_Add($iLoop) _BM_Sqrt($iLoop) Func _BM_For($iLoop) Local $iTimer, $fTime $iTimer = TimerInit() For $i = 1 To $iLoop Next $fTime = TimerDiff($iTimer) IniWrite($sPath_Ini, "For", @AutoItVersion, $fTime) EndFunc ;==>_BM_For Func _BM_While($iLoop) Local $iTimer, $fTime, $iI $iI = 1 $iTimer = TimerInit() While $iI <= $iLoop $iI += 1 WEnd $fTime = TimerDiff($iTimer) IniWrite($sPath_Ini, "While", @AutoItVersion, $fTime) EndFunc ;==>_BM_While Func _BM_Struct($iLoop) Local $iTimer, $fTime, $fTime_Loop Local $tStruct = DllStructCreate("float[" & $iLoop & "]; float[" & $iLoop & "];") Local $fVal = 12345.6789 $iTimer = TimerInit() For $i = 1 To $iLoop Next $fTime_Loop = TimerDiff($iTimer) $iTimer = TimerInit() For $i = 1 To $iLoop DllStructSetData($tStruct, 1, 123.45, $i) DllStructSetData($tStruct, 2, $fVal, $i) $fVal = DllStructGetData($tStruct, 1, $i) $fVal = DllStructGetData($tStruct, 2, $i) Next $fTime = TimerDiff($iTimer) - $fTime_Loop IniWrite($sPath_Ini, "Struct", @AutoItVersion, $fTime) EndFunc ;==>_BM_Struct Func _BM_Array($iCnt) Local $iTimer, $fTime, $fTime_Loop Local $aArray[$iCnt + 1][2] Local $iVal = 123456 $iTimer = TimerInit() For $i = 1 To $iCnt Next $fTime_Loop = TimerDiff($iTimer) $iTimer = TimerInit() For $i = 1 To $iCnt $aArray[$i][0] = 1234 $aArray[$i][1] = $iVal $iVal = $aArray[$i][0] $iVal = $aArray[$i][1] Next $fTime = TimerDiff($iTimer) - $fTime_Loop IniWrite($sPath_Ini, "Array", @AutoItVersion, $fTime) EndFunc ;==>_BM_Array Func _BM_Add($iCnt) Local $iTimer, $fTime, $fTime_Loop Local $iVal = 1 $iTimer = TimerInit() For $i = 1 To $iCnt Next $fTime_Loop = TimerDiff($iTimer) $iTimer = TimerInit() For $i = 1 To $iCnt $iVal += 1 Next $fTime = TimerDiff($iTimer) - $fTime_Loop IniWrite($sPath_Ini, "Add", @AutoItVersion, $fTime) EndFunc ;==>_BM_Add Func _BM_Sqrt($iCnt) Local $iTimer, $fTime, $fTime_Loop Local $iVal = 1 $iTimer = TimerInit() For $i = 1 To $iCnt Next $fTime_Loop = TimerDiff($iTimer) $iTimer = TimerInit() For $i = 1 To $iCnt $iVal = Sqrt(12345) Next $fTime = TimerDiff($iTimer) - $fTime_Loop IniWrite($sPath_Ini, "Sqrt", @AutoItVersion, $fTime) EndFunc ;==>_BM_Sqrt