Hallo Forum,
ich wollte gerade ein paar Performance Sachen mit einer ArrayList messen, da fiel mir auf, dass der erste Durchlauf immer eine feste Zeit mehr dauert, als die anderen Durchläufe.
Daraufhin schaute ich nach, woran es liegt, und stelle mit entsetzen fest, dass das Einfügen des Ersten (!) Elements in eine Liste ~120 ms dauert.
Folgendes Snippet:
Global $AList = ObjCreate("System.Collections.ArrayList")
Global $Liststarttimer = TimerInit()
$AList.add("Some Data")
ConsoleWrite("Initialization Time: " & TimerDiff($Liststarttimer) & @CRLF)
Global $NextElementTimer = TimerInit()
$AList.add("Some other Data")
ConsoleWrite("Second Write Time: " & TimerDiff($NextElementTimer) & @CRLF)
Ich würde euch bitten, das einmal auszuführen und mir die Zeit mitzuteilen.
Ferner noch:
Es ist unerheblich, ob man danach noch eine ArrayList anlegt, welche ganz anderen Speicher hat, oder diese hier genannte wieder nutzt. Lediglich der allererste Zeitpunkt im Script dauert solange, danach dauert es (bei mir) 0.04 ms für einen Datensatz.
Also die Frage: Wie kann man das umgehen? 120ms sind eine echt hohe Zeit, die man nicht unbedingt zu verschenken hat.