Ich habe dir zugestimmt, dass es schon sehr große Arrays sein müssen, bevor das auffällt.
Die Arraygröße spielt keine Rolle, UBound wird nur einmal berechnet, ich kriege für riesige und kleine Arrays den selben Zeitaufwand.
Die Zeit den Wert abzurufen ist zwar doppelt so groß, verglichen mit dem Abspeichern in eine Variable, aber wie bereits erwähnt ist das vernachlässigbar gering.
Wir bewegens uns (bei meinen Resultaten jetzt) bei 600.000 UBounds (drei Dimensionen) pro Sekunde, das sind ~0.5µs pro UBound, das ist nichts (in AutoIt-Maßstäben!!).
Bei solchen Zeiteinheiten sollte es, meiner Meinung nach, viel eher um die Gestaltung und den Stil des Codes gehen als noch das letzte bisschen Performance rauszuholen,
da diese in 99.999% der Skripte schlicht nicht benötigt wird, und wenn doch dann AutoIt nicht das Mittel der Wahl ist sondern man lieber ASM oder DllCalls nutzen sollte.
Ich habe schon in Skripten innerhalb von Schleifen UBound verwendet, obwohl ich die Größe, für das ReDim davor, bereits errechnet habe und UBound den selben Wert liefern wird.
Warum? Es sieht konsequenter aus und man muss nicht erst hochscrollen um zu wissen was da steht. Für mich ist der obere Code wesentlich besser als der untere, aber das muss jeder für sich entscheiden.
Jeder hat schließlich seinen eigenen Stil.