0

私は多かれ少なかれtime()、C標準ライブラリにどのように実装されているのか、そして以下に説明する状況で何が起こるのか疑問に思っています。この時間はほとんど無視できる可能性がありますが、時間に厳しい制限があり、CPUスケジューラーを制御できない状況を考えてみてください(汎用CPUにとって「適切な」スケジューラーであると想定してください)。

ここで、time()コードの特定のセクションの実行時間を計算し、この時間を最大境界から差し引いて他の時間依存変数を決定する場合、この変数はコンテキストスイッチに基づいてどのように歪められますか?必要なときにCPUを完全に使用できるようにするために、他のツール(カスタムスケジューラなど)を使用できることはわかってniceいますが、これと同様の状況でこれが一般的にどのように機能し、どのような副作用が存在するのか疑問に思っています。システムの選択による。

4

1 に答える 1

2

time壁時間を測定することになっています。つまり、プロセスの実行量に関係なく、現在の時刻が表示されます。

CPU時間を測定したい場合は、clock代わりに使用する必要があります(ただし、MSなどの一部のベンダーはそれを間違って実装しているため、壁時間も測定します)。

もちろん、timesUnixライクなシステムやGetProcessTimesWindowsなど、CPU使用率を取得するための他のツールもあります。ほとんどの人は、携帯性が低下しているにもかかわらず、これらの方が便利だと感じています。

于 2012-06-26T00:01:59.453 に答える