私はループ内に「stuff」するCプログラムを持っています。ここでは、各繰り返しが何ヘルツになるのです。このループは、約80khzで動くことができました。ファイルI/OがCループの速度を遅くする
次に、ループにファイルI/Oを追加しました(Linuxのファイル記述子を読み書きする)ので、〜6kループ/秒を壊すことはできないようです。操作そのものは非常に安いので、待ち時間の原因となっているカーネルのコンテキストスイッチと思われます。したがって、2つの質問:
- このような場合はどうすれば確認できますか?
- カーネルにRTパッチを適用する以外に、できることは何ですか?
問題を示す最も簡単なプログラムを教えてください。 (タイミングの仕方を含む) – slim
アンタイムドループのタイミングに頼ることはできません。何らかの種類のタイミングハードウェアを組み込む必要があります。もちろん、I/Oはフローを遅くします。 「安い」ファイルIOはありません。 –
1秒あたり80kの小さなファイルIOを試してみるのはおそらく最善の方法ではありません。あなたはバッファにすべてを印刷することはできませんし、バッファが十分に大きくなった場合にのみディスクにフラッシュしますか? また、RAMディスクを使用することもできます。 – 16tons