« 回文判定マクロ | トップページ | 2次元配列の行列を入れ替える »

2011年3月21日 (月)

MicroTimerを使って処理時間を計測する

ずいぶん前の記事で
MicroTimerについて触れました。

今回はこれを使って
処理時間を計測してみたいと思います。

まずは次のページのMicroTimer関数を
標準モジュールにコピペしてください。
Excel 2007 におけるパフォーマンスの改善

上記ページの説明によると
MicroTimer関数は
マイクロ秒の小数部分まで計測できるとあります。
マイクロ秒は100万分の秒です。

このページのMicroTimer関数の部分から下へ読んでいくと
これを使った計測の方法が詳しく書かれています。

範囲の計算、シートの計算、再計算、完全計算の
4つの場合に分けて処理時間を計算する方法が示されています。

この記事では
以前の記事『 Timer 関数を使って処理時間を計測する 』で紹介した
macro101030aの中の
Timerの部分をMicroTimerで置き換えたかたちで
MicroTimerを利用します。

MicroTimerが返す値の単位は
コードの中の説明によると秒です。

コードはこちら

MicroTimerを使って処理時間を計測するコード:

Sub macro110321a()
'MicroTimerの使い方

    Dim dTime As Double
    dTime = MicroTimer
   
   
    '計測したい処理
   
   
    dTime = MicroTimer - dTime
   
    MsgBox Round(dTime, 5) & " 秒"
   
End Sub

MicroTimer関数の詳細についてはよくわかりません。

getTickCountはmsdnの説明ではミリ秒の値を返すとあるので
これを1000倍すれば秒単位になると思うのですが、
MicroTimer関数の最後で
cyTicks1 / cyFrequency
の計算で秒単位にしているようです。

GetFrequencyについては
何らかの周波数であることは言葉からわかりますが
検索しても明確な説明が見つかりませんでした。

|

« 回文判定マクロ | トップページ | 2次元配列の行列を入れ替える »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: MicroTimerを使って処理時間を計測する:

« 回文判定マクロ | トップページ | 2次元配列の行列を入れ替える »