現在visual studio2008でmfcを使用したダイアログベースのアプリを作成しているのですが、
処理時間に気を遣わなくてはいけないないので色々な標準関数の処理にかかる時間を調べていたところ、
PostMessageにかかる処理が平均200マイクロくらいなんですが、稀に2000マイクロとかかかったりしています。
計測方法は高分解能パフォーマンスカウンタを使用した単純な計測です。
こんな感じで計測しました。
時間ゲットa
PostMessage();
時間ゲットb
処理時間 = b - a;
普段200マイクロくらいでできてる処理がどうして2ミリもかかってしまうことがあるのでしょうか?
以上、よろしくお願い致します。
> 普段200マイクロくらいでできてる処理がどうして2ミリもかかってしまうことがあるのでしょうか?
時間ゲットa
と
時間ゲットb
との間で Thread が切り替わっただけでしょう。
プリエンプティブなマルチタスクOS上でいつもマイクロ単位の時間経過で特定コードを終えることができると考えること自体が不自然です。
zeekさん回答ありがとうございます。
少し調べてみた所おっしゃるとおりでした。
まだまだ勉強不足です、ありがとうございました。
以上
ツイート | ![]() |