2010年5月25日火曜日

【速度対決】Date vs Now【VBA】

 速度比較のコードを書いたら、試すのが面白くなってきました。
 VBAのDate関数とNow関数の比較。

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          'yyyy/mm/dd
    Next i
    Call TimerStop          '---- 約0.9秒
End Sub

Sub Sample02()
    Call TimerStart         '---- 測定開始
    For i = 1 To 1000000
        buf = Now   'yyyy/mm/dd hh:mm:ss
    Next i
    Call TimerStop          '---- 約0.7秒
End Sub

Sub Sample03()
    Call TimerStart         '---- 測定開始
    For i = 1 To 1000000
        buf = Left$(Now, 10) 'yyyy/mm/dd
    Next i
    Call TimerStop          '---- 約2.8秒_| ̄|○
End Sub

 100万回実行させて、
・Date -> 約0.9秒
・Now -> 約0.7秒
でNowの勝ち。て言うかどちらも一瞬ですねw。
 もしかしたらLeft$(Now, 10)でDate()より速くなる?と思って試してみましたが、そうは問屋が卸しませんでした。

0 件のコメント:

コメントを投稿