【发布时间】:2012-09-18 04:36:09
【问题描述】:
我正在开发一个导入大量数据的应用程序,在一些并行线程中。
有时我得到 OutOfMemoryException(当我使用 1.5、1.7GB 的内存时)。
没什么大不了的,我想我会把它做成一个 64 位的程序(因为它不是那么大)。但是由于 .Net 错误(不能有 64 位的十进制主键),我无法制作 64 位程序。(description of the problem 并且我发现了许多其他情况。我无法更改任何内容数据库,甚至不是类型或添加视图)。
我只需要 1.5-1-7GB 的 RAM。如果我能达到 2.5GB,我会很高兴的。
我阅读了一些关于“LARGEADDRESSAWARE”的内容,但我没有找到在我的 Visual Studio 上设置它的位置,以及大多数其他提示我应该修改 boot.ini 文件。
但由于我的计算机已经是 64 位计算机(具有类似 8GB 的内存),我认为我不必在这里做任何事情。
那么我应该怎么做才能访问那些 3GB 的内存呢?
【问题讨论】:
-
你在做什么,需要所有这些都在内存中?仅仅因为您正在导入数据并不意味着数据需要或应该在整个过程中完全处于内存中。 “做一个管道,而不是一个桶”
-
32bit 应用程序只能寻址 4gb 的 ram 而不是 32gb
-
这不是“一次”,这是因为我有几个并行进程来读取和处理可变数量的数据。但这不是重点
-
@DanielPowell 我的错,我的意思是 3Gb