我有一个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();
}
我的localhost在ram中有8 GB但是当它开始读取大数据文件时,开始使用空洞内存,达到内存不足异常。
让我们说一个例子我的文件有10个元素,2个维度这将使锯齿状数据像这样:dimen[10][2]
这样一个定位的物理内存将是160个字节,在更大的文件中我达到了找到1.5 Gb的物理内存然而,当我从任务管理员查看物理内存时,它说它已经使用了7.5 Gb或更多,那么这怎么可能呢?我有什么遗漏来计算它已被使用的总内存量吗?