处理大文件时--防止出现内存不足错误?

处理大文件时--防止出现内存不足错误?

我在使用 Windows 7 Professional x86。

我正在处理一些相对较大的专有文件(压缩后约 900 MB,未压缩后约 1.5 GB)。

这个程序也是专有的,也是唯一一个可以处理我尝试使用的文件格式的程序,所以我真的没法选择其他程序。如果这有什么区别的话,它是一个 .NET 应用程序。

现在问题来了:程序的工作方式非常糟糕。它加载压缩文件,并保存对它的句柄。然后解压缩并将其保存在应用程序内存中。然后,如果我想保存所做的更改,我必须保存该文件的新副本,这需要压缩它并保存到磁盘。

保存文件是这里的问题 - 我基本上有一个应用程序试图在内存中存储这个巨大的 1.5 GB 文件的 3 或 4 个副本,而我的系统上只有 4 GB 的 RAM。结果,它在保存过程进行到大约 1/4 时崩溃,并出现系统内存不足异常。

  • 增加页面文件的大小并没有改变任何东西,尽管我承认我不太热衷于页面文件的工作方式。
  • 我无法使用具有更多 RAM 的任何机器来执行该操作。
  • 我正在使用一台笔记本电脑(将在未来几个月内更换),所以我不想购买/安装更多 RAM。
  • 我真的不想重新格式化为 x64,而且考虑到我只有 4 GB 的 RAM,我不确定这是否有帮助。

速度在这里不是问题;我只希望它有足够的内存来成功完成。

请注意,我不知道问题到底是什么。我不知道是因为我的 RAM 不够,还是因为 Windows 只为应用程序提供了有限的内存,还是因为我的页面文件太小,或者其他原因。

有人知道问题可能是什么以及我该如何缓解它吗?

答案1

问题是,除非程序要求更多内存,否则 Windows 只会给它 2GB 内存。这个问题可以通过让应用程序了解大地址来“修复”,但最好通过重新编译文件来完成(它可能可以直接更改标题,但这是一个糟糕的想法,并且可能不会起作用)。

如果您不认识可以修复此问题的程序员,那么很抱歉您无能为力。

相关内容