パフォーマンス改善も案件の1つであったため、ついでに直しておきました。で、計測してみたんですが、変わったのは誤差レベルでした。
はて?と思い、VBSで以下のようなコードを試しに実行してみました。
Dim data()
Dim idx
Dim st
st = Timer
For idx=0 to 100000
ReDim Preserve data(idx)
data(idx) = "Data" & idx
Next
MsgBox "処理時間=" & (Timer - st) * 1000 & " ms"
Dim idx
Dim st
st = Timer
For idx=0 to 100000
ReDim Preserve data(idx)
data(idx) = "Data" & idx
Next
MsgBox "処理時間=" & (Timer - st) * 1000 & " ms"
で、ループ回数を変えて実行してみました(C2D 2GHz環境)
1,000 → 処理時間= 0.0 ms
10,000 → 処理時間= 14.9 ms
100,000 → 処理時間= 530.0 ms
1,000,000→ 処理時間=46,939.9 ms
指数的にパフォーマンスは悪化しますが、数万のレベルであれば数十ミリ秒のレベル。
いまどきのハードであれば、処理のわかりやすさ重視でいいのかもしれませんね。
0 件のコメント:
コメントを投稿