2010年5月25日火曜日

【速度対決】Date vs 固定値【VBA】

 Date関数と固定値("2010/05/25")の比較。

Public StartTime As Double
Public EndTime As Double

Sub TimerStart()
    StartTime = Timer
End Sub

Sub TimerStop()
    EndTime = Timer
    MsgBox (EndTime - StartTime & " 秒")
End Sub

Sub Sample01()
    Call TimerStart         '---- 測定開始
    For i = 1 To 1000000
        buf = Date
    Next i
    Call TimerStop          '---- 約0.9秒
End Sub

Sub Sample02()
    Call TimerStart         '---- 測定開始
    For i = 1 To 1000000
        buf = "2010/05/25"
    Next i
    Call TimerStop          '---- 約0.17秒
End Sub

Sub Sample03()
    Call TimerStart         '---- 測定開始
    d = Format(Date, "yyyy/mm/dd")
    For i = 1 To 1000000
        buf = d
    Next i
    Call TimerStop          '---- 約0.17秒
End Sub

 100万回実行させて、
・Date -> 約0.9秒
・固定値 -> 約0.17秒
で固定値の勝ち。これは当たり前かw。
 つまり実際に使用する際は、Sample03のようにループ文の外で一回だけ代入すれば良いと言う事になります。

0 件のコメント:

コメントを投稿