64位进程的进程内存限制 [英] Process Memory limit of 64-bit process

查看:109
本文介绍了64位进程的进程内存限制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前有一个需要大量内存的 32 位 .Net 应用程序(在 x86 Windows 上).最近它开始抛出 System.OutOfMemoryException 的.

I currently have a 32-bit .Net application (on x86 Windows) which require lots of memory. Recently it started throwing System.OutOfMemoryException's.

因此,我计划将其作为 64 位进程移至 x64 平台.这将有助于解决内存不足异常.我正在阅读 MSDN 上的这篇文章Windows 内存限制

So, I am planning to move it to a x64 platform as 64-bit process. So will this help with the out of memory exceptions. I was reading this article from MSDN Memory limits for Windows

所以,我的问题是,如果我编译一个 64 位的 .Net 应用程序,它是否会将 IMAGE_FILE_LARGE_ADDRESS_AWARE 设置为默认值(如文章所述)?即,我能否利用 8GB 用户模式虚拟地址空间?

So, my question is if I compile a 64bit .Net application, will it have IMAGE_FILE_LARGE_ADDRESS_AWARE set as default (As the article suggests)? i.e will I be able to take advantage of the 8GB user-mode virtual address space?

推荐答案

x64 进程的最大内存限制为 8 TB,但实际限制要小得多,因为它取决于物理内存量和页面文件大小系统.见 这个发帖了解更多详情.

The maximum memory limit for x64 processes is 8 TB, but the practical limit is far less as it depend on the amount of physical memory and the pagefile size on your system. See this post for more details on this.

IMAGE_FILE_LARGE_ADDRESS_AWARE 影响在 x64 操作系统(或带有/3GB 指令的 x86 操作系统)上运行的 x86 进程.您的 x64 应用程序不需要设置大地址感知标志,它将能够使用您系统上的所有可用虚拟内存.

The IMAGE_FILE_LARGE_ADDRESS_AWARE affect an x86 process running on a x64 OS (or a x86 OS with the /3GB directive). Your x64 application does not need to set the large address aware flag and it will be able to use all the available virtual memory on your system.

这篇关于64位进程的进程内存限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆