繁体   English   中英

“system.outofmemoryexception”类型的 Visual Studio 异常

[英]Visual Studio exception of type 'system.outofmemoryexception'

我正在尝试将 csv 文件中的 250 万行数据作为字符串加载。 这是 Visual Studio 的 x64(不是 32 位)(调试 = 任何 CPU,发布 = 任何 CPU。Windows 也是 64 位。)

我已经预加载了我正在填充的空数据库:

public static string[,] allNames = new string[2500000, 12];

然后我继续填充它。 我以前只有 200 万行,而且运行良好。 然后我添加更多行,并得到 memory 错误。

查看任务管理器,我可以清楚地看到我的 16gb 我还有 4gb 空闲,但我还是去买了 16gb 的内存,因为我不知道问题出在哪里。

瞧,错误仍然出现。 我尝试将数据拆分为两个不同的数据帧,但它仍然在同一位置给出错误。 删除一列或两列,使其 go 更远一点,或者如果它是具有较长字符串的列之一(最长的字符串几乎有 1000 个字符长),则直到最后。

这是 Visual Studio 2019。任何帮助都会很棒!

有一个项目设置显示“首选 32 位”。 确保它没有被检查。

你真的应该考虑重构你的应用程序,这样你就不会一次将所有数据读入 memory。 除非您提供更多信息,否则我们这里没有人可以帮助您解决这个问题

解决方案1:
您可以将 csv 文件拆分为 3 个文件,每个文件应包含最多 100 万条记录,然后您可以一个一个地上传。

如果仍然存在问题,则每个文件保留 50 万条记录。

您的问题将暂时得到解决。

你可以在这里看到字符串的最大大小。 .NET 字符串的最大可能长度是多少?

解决方案2:
您可以使用 StringBuilder object 而不是字符串 object。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM