我有一个 Web 应用程序,它使用 C# 中的下一个代码从文件中读取数据:
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 的内存,但是当它开始读取大数据文件时,开始使用空洞内存,达到内存不足异常。
假设一个例子,我的文件有 10 个元素和 2 个维度,这将使锯齿状数组像这样:dimen[10][2]
通过这个定位的物理内存将是 160 字节,在较大的文件中,我可以达到 1.5 Gb 的定位物理内存但是当我从任务管理员那里查看了物理内存,它说它已使用 7.5 Gb 或更多,这怎么可能?我是否缺少一些东西来计算它已使用的内存总量?