3

私の状況では、1秒ごとにデータをディスクに書き出すコードを持っていないレガシーアプリがあります。ディスクに書き込まれたものを毎秒読み取り、データを使用する、作成したC#プログラムがあります。データは、作成前にファイル名を知っているいくつかのテキスト ファイルに書き込まれます。

問題は、このレガシ アプリと私のプログラムを実行している仮想マシンが多数あることです。RAM や CPU による制限はありませんが、ファイル io のボトルネックのため、マシンごとに 10 個を超える VM を追加することはできません。

RAMなどに存在するディスク上にファイルを作成する簡単な方法はありますか? 名前付きパイプがオプションであると聞いたことがありますか?

ありがとう!

4

2 に答える 2

0

ある種のメモリ/一時ファイルシステムを検索できます。

従来のアプリはHDDに直接書き込みを行っているため、ここでパイプを使用できるかどうかはわかりません。

于 2011-01-23T03:50:45.327 に答える
0

関連する実際の IO は確かですか?

ずっと前に、DOS プログラムから Windows プログラムにファイルを介してデータを送信する非常に醜い接続を実装しました。ただし、これは 1 秒に 1 回よりもはるかに高速でした。dos プログラムは、何かが変更されるたびに 4k ブロックを送信し、1 秒に 50 回 (追いついた場合)、Windows プログラムはフレーム番号を読み取り、次にフレーム番号を読み取ります。フレーム番号が異なる場合は 4K ブロック。

これにより、ディスク IO は発生しませんでした。そこに座って、dos プログラムが 1 秒間に何度もフレームを更新し、ハード ドライブのライトが消えたままになる可能性があります。Windows は、ファイルが開いていて頻繁に書き込まれていることを確認しました。更新が停止するまで、バッファーはディスクにフラッシュされませんでした。

リンクの Windows 側の最適化に多くの時間を費やしましたが、すべては接続ではなく、データの処理にありました。明らかに醜いにもかかわらず、ボトルネックではありませんでした。

ファイルが毎回閉じられると、Windows の処理が異なる可能性があります。RAMディスクに貼り付けると、それでもディスクIOを実行できなくなります。

于 2011-01-23T05:34:16.567 に答える