ファイルシステムを使用してRAMを増強する
-
05-07-2019 - |
質問
私はポケットPCアプリで作業していて、データファイルはsdカードに保存されていると言って、これを序文にする必要があります。
サイズxの配列を作成する必要があるアプリがあります。 mallocは毎回失敗しています。
4ギガのカードに1ギガのファイルがあります。
64 MBのオンボードメモリ(ram / data / application / os)があります
必要な配列が大きすぎるため、データを処理できません。
SDカードへのアクセスは、RAMとほぼ同じ速さです。
私はC ++(mfc)で作業しています
配列として使用するファイルにアクセスする最良の方法は何ですか?
または、これを行う別の方法がありますか?
解決
配列に十分な大きさのファイルを作成し、適切にパディング(GetSystemInfoに従って)し、CreateFileMapping / MapViewOfFileを使用してファイルをマップする必要があります。
少なくとも、それが私の最初の試みです-マッピングされたファイルがCE上にあることができる大きさに制限があるかもしれません。
他のヒント
n個のレコード(メモリに収まる)のウィンドウを作成し、そのウィンドウを移動して、作業中のレコードを保持する必要があります。私はmfcでコードサンプルを提供できるほど流ではありませんが、それほど難しくはありません。
C#では、カスタムIEnumerable <!> lt; T <!> gt;
を記述します所属していません StackOverflow