問題タブ [memory-mapped-files]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
15548 参照

c# - メモリ マップト ファイル .NET

プロジェクトがあり、ASP.NET の大量の独自データにアクセスする必要があります。これは、共有メモリにデータをロードすることにより、Linux/PHP で実行されました。私は、Memory Mapped Files を使用しようとするのが道なのか、それとも .NET サポートが強化されたより良い方法があるのか​​疑問に思っていました。データ キャッシュを使用することを考えていましたが、キャッシュに保存されるデータのサイズに関するすべての落とし穴について確信が持てませんでした。

0 投票する
2 に答える
557 参照

c - 2 つの連続したページのマッピング

UTF8 操作ライブラリの単体テストを書いていますが、関数がバッファ オーバーフローに陥った場合にテストで segfault を実行したいと考えています。そこで、メモリ内で隣り合う 2 つのページを mmap するというアイデアを思いつきました。PROT_WRITE、および PROT_NONE の 2 番目。そうすれば、オーバーフローが発生した場合、segfault が保証されます。次に例を示します。

問題は、2 番目のページをマップすると、プログラムでセグメンテーション違反が発生することです。問題を再現するプログラムの例を次に示します (GNU/Linux):

興味深いことに、最初の mmap() の前に printf() ステートメントがあると、プログラムが正常に実行されます。mmap がセグメンテーション違反を起こしている理由を知っている人はいますか? 私の目標が mmap() を使用して達成できない場合、バッファオーバーフローについてコードをテストする方法について他にアドバイスはありますか?

0 投票する
3 に答える
6631 参照

windows - ファイルとCreateFile/ReadFileのメモリマッピング

CreateFile ReadFileの組み合わせを使用して同じことを行うよりも、メモリマップトファイルを使用して(通常のサイズのファイル)を読み取ることの欠点(ある場合)は何ですか?

0 投票する
2 に答える
407 参照

.net - 大量のメモリを使用せずに大きなファイルを表示する最良の方法は何ですか?

Hex Workshop などの多くの 16 進エディタは、比較的小さなメモリ フットプリントを維持しながら、大きなサイズのファイルを読み取ることさえできますが、それでもスクロールをスムーズに保つことができます。これを達成するための最良の方法を探しているので、関連する質問がいくつかあります。

FileStream を使用する必要がありますか?
  - バッファリングは現在のシーク位置に基づいていますか? (通常、逆方向にスクロールするとページフォールトになりますか?)
  - 内部でのみ Seek を使用する FileStream のラッパーを作成すると、FileStream の適切なバッファリング機能が損なわれますか? (つまり、シークが近くにある場合でも、シークを繰り返すとパフォーマンスが大幅に低下しますか? パフォーマンスを維持するために、バッファリング アルゴリズムまたはディスク スケジューラを

利用できますか?) (私はおそらく100MBまでのファイルしか期待していません)
  - 検索/ジャンプ/高速スクロールによるページ フォールトは、顕著なパフォーマンスの問題を引き起こしますか?

最終的に、データを表示する必要があります。ファイル全体をビットマップとしてレンダリングし、変更時に画像の一部を無効にする必要がありますか (スクロール コントロールが画像に対して独自のページングを実行できるようにする)、またはスクロール イベントで現在の表示領域を生成する必要がありますか?

要するに、データ、生成された画像、またはその両方をページングしますか、それとも必要に応じてそれらを取得/生成しますか? このタスクに最適な (WPF/.Net) ライブラリ/API オブジェクトは何ですか?

0 投票する
6 に答える
25046 参照

mmap - メモリ マップト ファイルのサイズはどのくらいですか?

メモリ マップト ファイルのサイズを制限するものは何ですか? 割り当てられていないアドレス空間の最大連続チャンクよりも大きくすることはできず、十分な空きディスク容量が必要であることはわかっています。しかし、他の制限はありますか?

0 投票する
3 に答える
2509 参照

c++ - Windows CreateFilemapping の使用中にエラーが発生しました

私のプロジェクトではCreateFileMapping、2 つのプロセス間でメモリを共有するという概念を実装しました。特定の画像に関する詳細を含むセッション データのメモリ アドレスを格納するサーバー プロセスがあります。そして、バッファからそのアドレスを読み取るクライアント プロセスがあります。ここでの問題は、アドレスがクライアント プロセスに表示されることですが、一部の詳細が欠落しています。

これは私のサーバープロセスコードです:

これは私のクライアント プロセス コードです。

サーバー プロセスでは変数 "test" にすべての詳細が含まれていますが、クライアント "test" では一部のデータが欠落しています。

以下のサーバー テスト変数は、変数の内容を示す添付画像を示しています。

以下のクライアント テスト変数は、変数の内容を示す添付画像を示しています。

クライアントプロセスでも表示されるアイテムデータが必要な違いを確認してください..

0 投票する
2 に答える
6382 参照

c# - メモリ マップト ファイルのパスを取得できますか? (.NET 4.0)

.NET 以外のアプリケーションがメモリ マップ ファイルにアクセスできるようにしたいのですが、このアプリケーションはメモリ マップ ファイルの存在を認識していないため、ファイル パスが必要です。可能です?

0 投票する
5 に答える
2011 参照

c++ - メモリーアロケーター

ハードディスク上のファイルにデータを配置するwindowsでc++を使って仮想アロケータを作り、大きなオブジェクトを配置する際の物理メモリの使用量を減らしたい!.. virtualAllocでシステムの仮想メモリを使いたくない.. . ディスク上にファイルを作成し、それを使用してオブジェクト全体を割り当て、必要な部分またはオブジェクトを RAM に移動したいと考えています。

メモリ マップ ファイルを使用しようとしましたが、いくつかの問題に直面しました: マップ ファイルを使用してベクター要素を割り当てましたが、それらのいずれかを削除するためにベイクすると、要素のアドレスが変更され、メソッドが見つかりません。 「私のテストではファイル全体をマップしました」必要な場合にのみオブジェクトをマップします!

どんなリソースやオープンソース プロジェクトも役に立ちますか???

0 投票する
2 に答える
87 参照

winapi - カスタム ファイルをオンデマンドで開く

ファイル内の各セクションのオフセットと長さを示すヘッダーを持つセクションに実装されているカスタム ファイル タイプがあります。

現在、ファイルを操作したいときはいつでも、前もって全体をロードして解析するか、必要なセクションだけを選択してロードする必要があります。

私がやりたいことは、各セクションがオンデマンドで読み込まれるハイブリッド アプローチを実現することです。

ただし、これを行うと、ファイルシステムのハンドルを必要以上に開いたままにしておくことや、コードの複雑さが増すという点で、多くの潜在的な欠点があるようです。

この種の標準パターンはありますか?私のオプションは次のようです:

  1. ファイル全体をロードするだけで、無駄なサイクル/メモリについて不満を言うのをやめます
  2. ファイル全体を raw バイトとしてメモリにロードし、ディスクではなくメモリ バッファからアンロードされたセクションの要求を満たします。これにより、不要なセクションを解析するコストが節約され、必要なメモリが少なくなります (ディスク表現がその周りのオブジェクト モデルよりもはるかにコンパクトであるため)。
  3. 必要なセクションをすぐにロードしてファイルを閉じますが、ファイルのソースの場所は保持します。その後、別のセクションが要求された場合は、ファイルを再度開いてデータをロードします。この場合、基になるファイルが変更されると、奇妙な結果が得られる可能性があります。
  4. 上記と同じですが、ファイル ハンドルを開いたままにします (おそらく読み取り共有を許可します)。
  5. Memory-Mapped IO を使用してファイルをロードし、ファイルのビューを開いたままにします。

何かご意見は