Memory 对应用程序可用内存的限制

Memory 对应用程序可用内存的限制,memory,operating-system,Memory,Operating System,我有一个非常内存密集的C#桌面应用程序,我的问题是:增加计算机的RAM是更好(对于单个应用程序),还是更好地同时支持多个应用程序 我的操作系统是Windows 7(64位) 为了进一步解释,我所知道的是进程可用的内存是堆栈(每个线程)和堆。堆栈独立于计算机的RAM,通常由操作系统决定其大小。但是堆要大得多,建议将大型对象放在堆上(这就是C#中的new所做的,它从堆中获取内存) 所以问题又来了:扩展计算机的RAM会扩展每个进程可用的堆吗?每个进程是否都有一个堆,或者只是一个堆?首先,我认为如果您深

我有一个非常内存密集的C#桌面应用程序,我的问题是:增加计算机的RAM是更好(对于单个应用程序),还是更好地同时支持多个应用程序

我的操作系统是Windows 7(64位)

为了进一步解释,我所知道的是进程可用的内存是堆栈(每个线程)和堆。堆栈独立于计算机的RAM,通常由操作系统决定其大小。但是堆要大得多,建议将大型对象放在堆上(这就是C#中的
new
所做的,它从堆中获取内存)


所以问题又来了:扩展计算机的RAM会扩展每个进程可用的堆吗?每个进程是否都有一个堆,或者只是一个堆?

首先,我认为如果您深入了解一些操作系统概念,例如“进程地址空间”以及进程和虚拟内存在基本级别的工作方式,这将非常有帮助。 这看起来不错->[1]:

每个进程都有自己的进程地址空间,因此也有自己的堆。堆是“虚拟地址空间”的一部分,用于动态内存分配。这也取决于 在操作系统可容纳的可寻址内存范围内。例如,在32位系统中,最大可寻址范围永远不能超过4GB


增加更多的内存可以通过减少诸如颠簸之类的事情而产生一些不同(虽然不是一天一夜)

这篇精彩的文章得+1分。非常感谢你。你说得对,我们的操作系统课程似乎错过了很多重要的概念。。。