1

私は大量のデータを生成するプログラムを持っています。これは、csv ファイルに 1 行ずつ (データが作成されるときに) 書き込まれます。csv ファイルを Excel で開くことができた場合、約 10 億セル (75,000*14,600) になります。アクセスしようとするたびに System.OutOfMemoryException がスローされます (または、このサイズの配列を作成することさえあります)。データをvb.netに取り込む方法を知っている人がいれば、簡単な操作を実行できます(すべてのデータを一度に利用できる必要があります)。あなたが持っているすべてのアイデアを試してみます。

私は RAM の使用量を増やすことを検討しましたが、他の記事や投稿によると、これは 10 億を超える直前に実行されるとのことです。ここでは時間の問題はありません。対処できるのは数日または数週間にすぎないと仮定します (年に 1、2 回しか実行しません)。とにかくそれを行う方法がわからない場合、私が考えることができる唯一の他の解決策は、Excelの列数を〜75,000に増やすことです(可能であれば、データを逆に書き込むことはできません)、または私は推測しますこれを処理できる別の言語があれば?

現在、最初から失敗しています:

 Dim bigmatrix(75000, 14600) As Double

どうもありがとう、フレイザー:)

4

1 に答える 1

1

まず、約8 GBを割り当てようとしているため、これには常に64ビットのオペレーティングシステムとかなり大量のRAMが必要になります。

これは、gcAllowVeryLargeObjectsをオンにした場合、VisualBasicターゲティング.NET4.5で理論的に可能です。そうは言っても、可能であれば、多次元配列の代わりにジャグ配列を使用することをお勧めします。これにより、8GBの単一割り当てが必要になる必要がなくなります。(これにより、.NET 4以前でも機能する可能性があります。)

于 2012-08-16T00:34:47.517 に答える