2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« VBScriptやVBAのSplit()関数の代替にJScriptを使う。 | トップページ | JScriptのArrayオブジェクトへの追加では、unshift()が遅い。 »

2008年5月11日 (日)

VBScriptの配列は、漸増が遅い。

VBScriptの配列をReDimで伸縮するとき、漸減はそれほどでもないが、漸増はとても遅い。

t1 = Timer
ReDim a(1024 * 512)
For k = 1024 * 512 To 1 Step -1
  ReDim Preserve a(k - 1)
Next
MsgBox Timer - t1
'1.011719

t1 = Timer
a = Array()
For k = 1 To 1024 * 512
  ReDim Preserve a(k)
Next
MsgBox Timer - t1
'31.84375

束で増やすようにすれば、それなりに速くなります。
もし最大値が予想できるなら、最初にどんと大きく作って、最後に小さく調整するとよいでしょう。

« VBScriptやVBAのSplit()関数の代替にJScriptを使う。 | トップページ | JScriptのArrayオブジェクトへの追加では、unshift()が遅い。 »