Sim*_*mon 2 c# csv file.readalllines
我正在做一些基准测试,以不同的方式来读取CSV文件,并发现一个"奇怪"的问题.问题是当我在控制台应用程序中使用此方法时:
var lines = File.ReadAllLines(fileName); // OutOfMemoryException
foreach (var line in lines)
{
//doing stuff
}
Run Code Online (Sandbox Code Playgroud)
我得到一个OutOfMemoryException,但是当我在WPF项目中使用相同的方法时,它工作正常.我正在测试这个文件是730MB,我知道不要在更大的CSV文件上使用ReadAllLines,但为什么这个方法在WPF应用程序中有效但在控制台应用程序中却无效?
您正在使用32位进程并遭受地址空间碎片.这意味着运行时无法分配足够的连续内存,尽管总共可以释放足够的内存.WPF可能只是倾向于拥有更好的内存布局.
将项目更改为64位.
或者,使用流式传输文件File.ReadLines.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |