私は大きな多次元バイト配列([8,8192,8192]の次元の配列など、配列あたり最大500mb)を使用しており、それらをファイルに読み書きして保存したいと考えています。
BinaryFormatterを使用してみましたが、非常に低速です(実行に数分かかります)。
BinaryWriterを使用してみましたが、1次元配列しか取り込めません。さて、Cでは多次元配列を一次元として渡すことに問題はありませんでした。C#では、私が見たところ、2つのオプションがあります。
- 一次元配列にメモリの別のチャンクを割り当て、forループを使用してデータをコピーし、BinaryWriterを使用してこの配列をファイルに書き込みます
- forループを使用して、BinaryWriterを使用して個々のバイトをファイルに書き込みます
明らかに、どこでもbyte []を使用し、myarray[i、j]を使用する代わりにmyarray [i + j * myarray_width]を使用すると、はるかに高速になりますが、作業を簡単にするためにクラス全体を書き直す必要があります。 1セットのI/O機能(保存/ロード)。
より良い方法が必要です。