0

数学計算のために、サイズが 34000x34000 の 2 次元配列を操作する必要があります。

明らかな問題 - CLR がそのような大きなデータ部分をメモリに格納できないことです。を使用しよMemoryMappedFileうとしましたが、オブジェクトのビューアーを作成しようとしても失敗します: MemoryMappedFile.CreateViewAccessor()。大規模な配列を格納する方法は他にもありますか? (カスタムの大規模データストレージを実装しようとする時間があまりないため)

ありがとう

4

3 に答える 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 に答える