Hex Workshopなどの多くのヘキサエディタでは、メモリフットプリントは比較的小さくても大容量のファイルを読み取ることができますが、スクロールをスムーズに保ちます。私はこれを達成するための最善の方法を探しているので、いくつかの関連する質問があります。
私はFileStreamを使うべきですか?
- バッファリングは現在のSeekの場所に基づいていますか? (逆方向にスクロールすると通常はページフォールトですか?) - Seekを内部的にしか使用しないFileStream用のラッパーを作成すると、正しくバッファリングするFileStreamの機能が損なわれますか?バッファリングアルゴリズムまたはディスクスケジューラを使用してパフォーマンスを向上させることはできますか?)
メモリマップ型I/Oを使用する方がよいでしょうか? (私は実際には100MBまでのファイルしか期待していません)
- 検索/ジャンプ/高速スクロールのpagefaultは顕著なパフォーマンスの問題を作りますか?
最終的には、データを表示する必要があります。ファイル全体をビットマップとしてレンダリングし、変更時にイメージの一部を無効にするか(スクロールコントロールがイメージ上で独自のページングを行うようにするか)、スクロールイベントで現在の表示領域を生成するだけですか?
Shortでは、データ、生成されたイメージ、またはその両方をページングするか、必要に応じてページを取得/生成しますか?このタスクに最も適した(WPF/.Net)ライブラリ/ APIオブジェクトは何ですか?大量のメモリを使用せずに大容量のファイルを表示する最も良い方法は何ですか?
2
A
答えて
2
すでに答えがあるようです。
この一般的な解決策は、Memory Mapped filesを使用し、OSにキャッシングとシークを気にさせます。
まず、最も単純で最も明白な解決策を試してください。それが満足のいくものでなければ、ボトルネックを最適化してください。 Premature optimizations is the root of all evil.
1
実際にはそれほど大きくありません。だからメモリはおそらく新しいマシンで動作します。
しかし、時間が経つにつれてソリューションの規模が拡大しないようにすることは望ましくありません。あなたが限界を100MBと仮定した分、誰かがそれを200MBで試みます。だから私はあなたが "シーク"ルートを取ることをお勧めしたい - それはそれを行う一般的な方法です。
関連する問題
- 1. C#膨大な量のメモリを使わずに大量のフォルダとファイルを再帰的にループする方法
- 2. メモリを大量に使用せずに遷移UILabelをスケールする方法は?
- 3. 大量のSQLデータを.netでロードし、CSVファイルを生成する最も良い方法は何ですか?
- 4. 大量の画像をカタログする最良の方法は何ですか?
- 5. Cでの大容量メモリの問題
- 6. Androidアプリケーションで大量のテキストデータを暗号化する最も良い方法は?
- 7. 大量のデータを.Netアプリケーションに保存/ロードする最も良い方法は?
- 8. 大量のテキストを保存する最も良い方法は? MySQLの外部
- 9. 大量のデータをデータグリッドにロードする最良の方法
- 10. 休止状態で大量のレコードを挿入する最も良い方法
- 11. XLSに大量のレコードを保存する最も良い方法
- 12. 大量のデータをC++で大量に保存する方法
- 13. 最大SharePointコンテンツDB容量
- 14. ipcontrollerによる大量のメモリ使用
- 15. FileServiceで大容量のファイルがメモリ不足になる
- 16. ASP.NETで大量の電子メールを送信する最も良い方法は何ですか?
- 17. C#関数のメモリ使用量を測定する最も良い方法は何ですか?
- 18. 大容量ファイルのダウンロード用のMD5チェックサム
- 19. 大量のユニークなプロモーションコードを生成する最も良い方法は何ですか?
- 20. Linuxでmod_xsendfileを使用して大容量ファイルをダウンロードする
- 21. Webアプリケーション用の大容量ローカルストレージオプションは何ですか?
- 22. メモリからファイルに大量のデータを書き込む最速の方法は何ですか?
- 23. メモリ使用量 - 大きい画像
- 24. plistの最大容量はどれくらいですか?
- 25. 最大PHPメモリ使用量を測定する
- 26. Python関数による最大*メモリ使用量の追跡
- 27. 大量のテキストを表示するコントロール
- 28. 大量のオーディオファイルをフォーマットする最も効率的な方法
- 29. OSXでプログラムの最大メモリ使用量を取得するには
- 30. イベントと最大容量のFacebookページ