実行時に一定量の CPU を消費する必要がある C コード (Linux 上) を作成しています。特定の CPU しきい値に達したときに特定のアクションをトリガーする実験を行っています。そのため、使用率が特定のしきい値に達したら、実験を完了するまで、たとえば 30 秒間その状態を維持する必要があります。top コマンドを使用して CPU 使用率を監視しています。
だから私の質問は - 1. CPU 使用率を特定の値に増やすにはどうすればよいですか (可能であれば決定論的な方法で)。2. しきい値に達したら、事前に定義した時間、そのレベルを維持する方法はありますか?
top コマンドの出力例 (9 列目は「top」プロセスで使用される CPU です) - 19304 abcde 16 0 5448 1212 808 R 0.2 0.0 0:00.06 top
上記と同様に、バイナリの使用率を示す一番上の行を見ていきます。
どんな助けでも大歓迎です。また、詳細が必要な場合はお知らせください。
ありがとう!
編集:次のコード行により、CPU使用率を非常にうまく制御できました-次の場合、2つのオプションがあります-50%以上に保ち、50%未満に保ちます-いくつかの試行錯誤の後、与えられた値に落ち着きましたスリープ値。
endwait = clock() + ( seconds * CLOCKS_PER_SEC );
while( clock() < endwait ) {}
if (cpu_utilization > 50)
usleep(250000);
else
usleep(700000);
お役に立てれば!