これらのメモリマップトファイルにはどのようなファイル拡張子があるのだろうかと思っていました。それらは.dllまたはそのようなものですか。もう1つは、その内容がわからない場合でも、そのようなファイルを使用できるということです。
4 に答える
メモリマップトファイルにはどのようなファイル拡張子がありますか?
メモリマップトファイルには、任意のファイル拡張子を付けることができます。任意のファイルのファイルマッピングを作成できます。
その内容がわからない場合、そのようなファイルを使用できますか?
はい、その内容を知らなくても、任意のファイルのファイルマッピングを作成できます。
これらの答えは非常に些細なものなので、メモリマップトファイルとは何か、なぜそれらが役立つのかを完全には理解していないのではないかと思います。あなたが尋ねるべきだった質問は、メモリマップトファイルとは何ですか?
MSDNからの引用
メモリマップトファイルには、仮想メモリ内のファイルの内容が含まれています。ファイルとメモリ空間の間のこのマッピングにより、複数のプロセスを含むアプリケーションは、メモリに直接読み書きすることによってファイルを変更できます。.NET Framework 4以降では、MSDNライブラリのWin32でのメモリマップトファイルの管理で説明されているように、ネイティブWindows関数がメモリマップトファイルにアクセスするのと同じ方法で、マネージコードを使用してメモリマップトファイルにアクセスできます。
メモリマップトファイルには次の2種類があります。
永続化されたメモリマップトファイル永続化されたファイルは、ディスク上のソースファイルに関連付けられているメモリマップトファイルです。最後のプロセスがファイルの処理を終了すると、データはディスク上のソースファイルに保存されます。これらのメモリマップトファイルは、非常に大きなソースファイルでの作業に適しています。
非永続メモリマップトファイル
非永続ファイルは、ディスク上のファイルに関連付けられていないメモリマップトファイルです。最後のプロセスがファイルの処理を終了すると、データは失われ、ファイルはガベージコレクションによって再利用されます。これらのファイルは、プロセス間通信(IPC)用の共有メモリを作成するのに適しています。
メモリマップトファイルは、オペレーティングシステムによって提供される手法であり、任意のファイルにメモリの一部であるかのようにアクセスできます。OSは、プロセスで使用可能なオペレーティングメモリの一部にマップするだけです。
それ以上でもそれ以下でもありません。したがって、ファイルの拡張子の再調整に関する懸念とその内容に関する知識は関係ありません。ただし、操作しようとしているファイルの内容を知っていることが期待されます。
「メモリマップトファイル」の起源は、「グローバル共有メモリセグメント」と呼ばれていたOS / 2(Windows NTの前身)にあります。これは、実際には、より正確な用語です。
これらは、アプリケーション間でDATAINMEMORYを共有するために使用されます。このようなデータは、フックがあり、終了した(永続性)すべてのアプリでディスクに保存できます...必要な場合とそうでない場合があります。
ファイルをメモリに読み込むことについて話している人にとっては、そうです、そうすることはできますが、なぜそうするのでしょうか。同じファイルを再読み込みする必要がありますか?その場合は、必要なものを入手して、いくつかの変数(構成ファイルなど)をロードします。
この機能は、(1つ以上のアプリによって)継続的に変更され、1つ以上のアプリによって読み取られるDATAを共有するために実際に使用されます。データベースの使用、ディスクファイルの読み取り/書き込みなどよりもはるかに簡単かつ迅速に実行できます。