プログラムでメモリ内に仮想ディスクを作成できますか?
-
12-09-2019 - |
質問
パフォーマンス上の理由から、外部アプリケーションが読み取れるメモリに書き込みたいと考えています。両方のアプリケーションを連携させることはできないので、ファイルを書き込むしかないと思います。ただし、物理ディスクへの書き込みは十分な速度ではありません。仮想パーティションをマウントして、どのアプリケーションでもアクセスできるようにしたいと考えています。どうやってするの?
解決
あなたは、アプリケーション間でデータを転送するために、名前付きパイプを使用することができます。
他のヒント
あなたは限りWindows上のプロセス間でメモリを共有するために、仮想ディスクの作成などに行く必要はありません - あなたは共有メモリブロックを作成することができ、かつ複数のプロセス、そのメモリにアクセスすることができます。
。 名前付き共有メモリを作成:このMSDNの記事を参照してください。 A>
私は、.NETのためのいくつかのcommersial avaliable RAMディスクの実装を見てきましたが、私は今それを見つけるように見えるカントます。
別のオプションは、次のようになります。 C#
メモリマップファイルをアクセスします.NET 4.0を使用できるといいのですが:)
.NET 4.0 では、メモリ マップド ファイルが導入されています。
Gunnar Peipman は次のリンクで素晴らしいブログを書いています。 .Net フレームワーク 4.0:メモリマップドファイルの使用
彼のブログでは、「メモリ マップト ファイルは、メモリ内データ操作を行う必要があり、データ構造が大きい場合に役立ちます。大きなメモリ内データの場合、メモリ マップト ファイルのパフォーマンスが最高です。MemoryStream よりもはるかに高速です。ハードディスク上のファイルと同じように、 メモリマップされたファイルは異なるプログラム間で共有可能."
彼のブログにもサンプルコードが含まれています。