2017年11月
      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    
無料ブログはココログ

« 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()が遅い。 »