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

查看:294
本文介绍了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.

所以,我打算将它移动到x64平台的64位进程。因此,将这种帮助的内存不足异常。我读这篇文章从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,但是实际限制少得多,因为它依赖于物理内存量和页面文件大小的系统。请参阅<一href="http://stackoverflow.com/questions/2052019/net-why-cant-i-get-more-than-11gb-of-allocated-memory-in-a-x64-process">this帖子更多这方面的细节。

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进程。您的64位应用程序并不需要设置较大的地址标志,它就能在系统上使用所有可用的虚拟内存。

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天全站免登陆