自分が作った演算方式のパフォーマンスを見たいです。
そのアルゴリズムの前と後ろに、0.000001秒くらいの単位で、
時刻を読み取れる関数を入れたいのですが、
どうすればいいでしょうか?
そいつを100万回呼び出したときの時間を測った方が手っ取り早いんじゃないすか?
ソフトが暴走しない範囲で無限ループで演算を指定時間繰り返えす。
ソフトで演算の都度カウントして、結果何回繰り返したか調べるって
方法もあるかも。
まだまだ探してみればいろいろありそうですね。
QueryPerformanceCounterならそれくらいでも
測れるんじゃなかったかな?
対応しないハードの可能性とか書いてあったりしますけどね。
…というか、「計測負荷」がどんどん膨れるので、
そんな精度での計測はあまり意味がないと思います。
# Windows OSは動作時間を保証したりしないので。
QueryPerformanceCounterがいいよ。
測定誤差を減らすため演算を100回繰り返すとかもいいよ。
QueryPerformanceCounterやforの処理時間を調べてもいい。
キャッシュヒットによって1回目だけ遅かったりするけどね。
計るたびに多少結果が違ったりするんだよな
マウスカーソルの描画とか
アンチウィルスとかページフォルトとか頻繁に裏で動いているから
何度か調べて極端に遅いものとか除いて平均を取るとか。
少しでも速くしたくていろいろ演算を考えたけど
どれも誤差なのか微妙な時間差のとき困るよね。
キャッシュみたいなのは実験と実際で結果が違うかもしれないし。