私はいくつかのプロファイリング テストを実行していますが、usleep は便利な機能です。しかし、私のプログラムがスリープしている間、今回はプロファイルに表示されません。
例えば。次のような関数がある場合:
void f1() {
for (i = 0; i < 1000; i++)
usleep(1000);
}
プロファイル ツールを gprof として使用すると、f1 はまったく時間を消費しないようです。
私が探しているのは、次のようなアクティブなスリープを行うための空の while ループよりも優れたメソッドです。
while (1) {
if (gettime() == whatiwant)
break;
}