rdtsc(Read Time Stamp Counter)の平均値測定 【やってみた】


rdtsc(Read Time Stamp Counter)のクラス化で、rdtscの取得方法を説明した。今回は何度も同じルーチンのパフォーマンスを測定する上で平均的なrdtscを測定してみる。

スポンサーリンク

測定

下記のようなコードを作ってみた。今回、特にこのクラスを使う上でのオーバーヘッドはあまり考えてない(というより考えなくてよいぐらい重い処理を測定する場合に使うことを前提に)。また、includeにATL/WTL系のヘッダーファイルを使っているが、これはCAtlArrayとCStringを使うためである。vectorやstringが好きな人はそちらを使ってもらえればよいかと。

という感じである。staticを使っているが、これは下のような使い方をするためである。

ちなみに、ヘッダーファイルしか用意していないので、staticメンバの初期化に__declspec(selectany)を使っている。

平均の出力

出力としてはこんなメソッドを用意すればよいのではないかと。平均ということで回数で割っている。

毎回、もしくは最後にこれらを呼んであげればよいかと。printfやUnicodeバージョンのwprintfがあるが、MSDNで調べたところでは(それを引用して)、

現在 printf では、UNICODE ストリームへの出力はサポートされていません。

とのことで、結局CT2AなどでANSI文字列に変換し普通にprintfを使うのがよいであろう。

スポンサーリンク
カテゴリー: やってみた   パーマリンク

コメントは受け付けていません。