2

グラフィックス プログラムを使用しており、特定の関数呼び出しにかかる時間を測定したいと考えています。内部でどのように機能するのかよくわからないのでstd::cout、タイマー呼び出しの間に呼び出すとパフォーマンスに影響するかどうかを尋ねたいと思いました。それ自体が遅いことはわかっているので、当然、測定している関数には入れませんが、呼び出しが何らかの方法で戻った後も効果が残るように、バッファリング/非同期ですか? 私はこのようなことをしようとしています(疑似コード):

timer->Start();
RunSomeFunction();
timer->Stop();
std::cout << timer << std::endl; // Could this affect the next timer event?
timer->Start();
RunAnotherFunction();
timer->Stop();
std::cout << timer << std::endl;
// etc
4

2 に答える 2

2

技術的には、std::cout(ほとんどの関数と同様に) 一部の RAM ページがスワップアウトされたり、OS のバッファーがいっぱいになったり、OS に他の方法で追加の負荷が発生したりする可能性があります。しかし、それは目立たないはずです。

プロセス内または OS カーネル内の追加の (非同期) 作業は別のスレッドで実行されるため、プログラムはそれほど影響を受けません (マルチコア CPU があり、システムがアイドル状態である場合)。

于 2013-05-09T12:33:53.947 に答える