#include <String.au3>

Global Const $aN = [1e1, 1e2, 1e3, 1e4, 1e5]
Global $iT, $f_Overhead

Global $sMeasureFormat = "%12.6f  ms", $dFormLen = StringLen(StringFormat($sMeasureFormat, 0))
Global $sHeader = StringFormat("\n% 10s\t% " & $dFormLen & "s\t% " & $dFormLen & "s\n", "N", "$x = $mMap[$i]", "$x = $aArray[$i]")
ConsoleWrite($sHeader & _StringRepeat("-", 48))

For $N In $aN
	ConsoleWrite(StringFormat("\n% 10d", $N))

	Global $mMap[], $aArray[$N + 1], $vRand, $vTmp

	For $i = 1 To $N
		$vRand = Random(1, $N, 1)
		$mMap[$i] = $vRand
		$aArray[$i] = $vRand
	Next

	; determine the overhead of loop [and optional other stuff]
	$iT = TimerInit()
	For $i = 1 To $N
		;  $vTmp = ""
	Next
	$f_Overhead = TimerDiff($iT)


	; Zugriff auf Map-Elemente
	$iT = TimerInit()
	For $i = 1 To $N
		$vTmp = $mMap[$i]
	Next
	$iT = TimerDiff($iT)
	ConsoleWrite(StringFormat("\t" & $sMeasureFormat, ($iT - $f_Overhead) / $N))

	; Zugriff auf Array-Elemente
	$iT = TimerInit()
	For $i = 1 To $N
		$vTmp = $aArray[$i]
	Next
	$iT = TimerDiff($iT)
	ConsoleWrite(StringFormat("\t" & $sMeasureFormat, ($iT - $f_Overhead) / $N))
Next
ConsoleWrite(@CRLF & @CRLF)
