C# の次のコードを使用して、ファイルからデータを読み取る Web アプリケーションがあります。
string [] split_line;
System.IO.StreamReader sr = new System.IO.StreamReader(data_file);
line = sr.ReadLine();
while (line != null)
{
dimenc[nn] = new double[dimentions+1];
for (int m2 = 0; m2 < dimentions; m2++)
{
split_line = line.Split(new Char[] { ' ', ',', '\t' });
dimenc[nn][m2] = Convert.ToDouble(split_line[m2]);
}
nn = nn + 1;
line = sr.ReadLine();
}
私のローカルホストには 8 GB の RAM がありますが、大きなデータ ファイルの読み取りを開始すると、ホール メモリが使用され始め、メモリ不足の例外に達します。
私のファイルに10個の要素があり、2つの次元があるとします。これにより、次のようなギザギザ配列が作成されます。dimen[10][2]
これにより、配置された物理メモリは160バイトになり、より大きなファイルでは、1.5 Gbの配置された物理メモリを持つようになりますタスク管理者から物理メモリを確認すると、7.5 Gb 以上使用されているとのことですが、これはどうしてでしょうか? 使用されたメモリの総量を計算するために欠けているものはありますか?