【发布时间】:2020-12-23 03:34:01
【问题描述】:
这是 C# 代码:
string file = File.ReadAllText(@"C:\repos\BigTextSearch\Codes.txt");
我正在尝试在 .Net core C# 的内存中加载一个 10GB 的文件。我的 PC 中有 32GB RAM,其中 20GB 是免费的。 Codes.txt 包含大约十亿个代码。我不想根据我的问题分块。
当我运行控制台应用程序时,我收到“内存不足”错误。有没有办法增加堆大小?显然,根据一些答案,该进程允许的内存分配约为 3GB。我想知道是否可以增加它,以便我可以在内存中加载我的 10GB 文件。
【问题讨论】:
-
这能回答你的问题吗? C# Increase Heap Size - Is It Possible
-
你编译的是 32 位还是 64 位的应用程序?
-
我正在编译 64 位
-
你想用那个文件做什么?这对于为您提供一些解决方法至关重要。例如,如果您需要处理这些数据(搜索、修改、重写),也许将文件逐行加载到数据库系统中可能会为进一步处理提供一些优势
-
你确定它是 64 位的吗?你检查EXE了吗? “首选 32 位” 复选框未在您的项目属性中设置?你用那个 10 gig 的字符串做什么?将其流式传输并以块的形式执行您所做的任何事情不是更有意义吗?
标签: c# memory operating-system heap-memory