CファイルI/Oでは、フラグを使用して、編集O_DIRECT
中のファイルのキャッシュ効果を最小限に抑えることができます。open()
これはPOSIX機能ではなく、バージョン2.4.10以降Linuxカーネルに存在しており、Linusは一般的にインターフェイスに反対していることを理解しています。NetBSDの下では、宣伝どおりに機能しているようです。呼び出し例:
int fd = open(filename、O_DIRECT);
私はいくつかの低レベルのディスクベンチマークユーティリティを書き込もうとしていますO_DIRECT
が、OSファイルシステム/ブロックキャッシュの影響を受けずにディスクとドライブのパフォーマンスを測定するための潜在的に良い方法のように見えます。理想的には、Linux、Windows(CygwinはOK)、Mac OS X、およびBSDシステムでベンチマークを実行できるようにしたいと思います。O_DIRECT
ベンチマークの移植性と信頼性の観点から、OSディスクキャッシュをバイパスする最良の方法はありますか?代替案はありますか?