繁体   English   中英

x64进程可以在4GB RAM上占用多少内存

[英]How much memory can x64 process can take on 4GB RAM

我有一个x64应用程序。 这是一个有点繁重的应用程序(在线程数,需要的内存等)。 我在4GB RAM 64位Windows7 Quad核心机上运行此应用程序。 但我注意到的是,在我的应用程序需要大约2.2-2.3 GB Ram后,它会崩溃。 这是必要的吗? 64位应用程序最大可以从4GB RAM只占用2.3-2.4 GB RAM吗?

不,请先检查您是否有任何溢出或其他错误。 即使是32位应用程序也可以解决 - 使用更多内存,因此如果它在Windows 64位上受限制将是荒谬的。

剩下的内存是免费使用的吧?

RAM的数量无关紧要,进程分配虚拟内存。 您可以在64位进程中分配的虚拟内存量仅受操作系统提供将虚拟内存映射到RAM的页面的限制。 这通常仅受最大允许分页文件的限制,假设您没有使用CreateFileMapping()创建自己的映射。 它是一个系统设置,控制面板+系统+高级。 Windows版本有一个上限,Windows 7 Home Premium为16 GB,Professional和up为192 GB。

RAM仅在程序实际访问虚拟内存时使用。 当内存尚未映射时,会生成页面错误。 如果在使用所有可用页面之前分配和使用内存大大超出RAM量,则64位进程通常会因为这些页面错误而变慢。

由于您是典型的最大页面文件大小的南方,这肯定只是另一个普通的旧堆损坏错误。

调试你的程序。 不应该仅因为你分配了大量内存而发生崩溃。 通常的怀疑:数学溢出,内存损坏,无法处理内存分配例程中的错误。

暂无
暂无

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

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