数学計算のために、サイズが 34000x34000 の 2 次元配列を操作する必要があります。
明らかな問題 - CLR がそのような大きなデータ部分をメモリに格納できないことです。を使用しよMemoryMappedFile
うとしましたが、オブジェクトのビューアーを作成しようとしても失敗します: MemoryMappedFile.CreateViewAccessor()
。大規模な配列を格納する方法は他にもありますか? (カスタムの大規模データストレージを実装しようとする時間があまりないため)
ありがとう
3 に答える
0
代わりにギザギザ配列を使用することをgcAllowVeryLargeObjects
検討する代わりに、1 つの巨大なメモリ (ダブルの場合は約 10GB だと思います) を処理するには、間違いなく追加の労力が必要です。
YourType[][] array = Enumerable.Range(0, 34000).Select(_ => new YourType[34000]).ToArray();
このような配列を使用するには、必ず x64 プロセスが必要であることに注意してください。x64 のみで明示的に exe をビルドしてください。
于 2015-09-18T16:18:39.550 に答える