小さなテキスト ファイルでは問題なく動作する数千行の C++ コードがありますが、巨大なテキスト ファイル (2 GB サイズなど) ではクラッシュします。クラッシュの理由: アプリがメモリを消費します。
ディスクからメモリを割り当てることは可能ですか? ほとんどの場合、ハード ディスク領域は物理メモリよりもはるかに大きいためです。アプリ用にハードディスクからいくらかのスペースを借りて、使用後に戻すことができれば、アプリがクラッシュする可能性はほとんどありません。
ここに私のデザインの考えがあります:
- ファイルマッピング用の一時ファイルを作成する(CreateFileMapping、OpenFileMapping)
- アプリに一時ファイルからメモリを割り当てるように強制する
- いくつかのクリーンアップ作業を行います: CloseFileMapping と一時ファイルを削除します
私は非常に多くの既存のコードを持っているため、私の設計思想が合理的であれば、プロジェクトを再設計したくありません。
設計思想が実現可能かどうかはわかりません。誰でも私を助けることができますか?
PS: Visual C++ 2010 を使用しています。