c#为虚拟机分配内存

del*_*ber 2 c#

C#是否具有相当于java的-Xmx1024m开关,允许您增加对虚拟机的内存分配?

Ree*_*sey 10

在这方面,CLR处理内存分配与java非常不同.它将继续增加堆大小,没有上限(除了体系结构限制).

在64位操作系统上,当针对x64时,CLR将继续允许进程分配内存,直至系统中可用的总内存.人工过程没有固定的上限.

在32位系统上,或者在针对x86时,实际上限往往在1.2到1.6 GB之间.此时,您将开始遇到内存不足异常.(理论上,它应该使用2GB,但CLR本身会占用一些空间,而它处理内存寻址的方式会导致内存不足错误发生在此范围内.)


编辑:这是一篇很好的文章,描述了在JVM和CLR中处理内存的方式差异.我认为JVM需要使用的主要原因-Xmx是因为它不会将内存释放回操作系统.因此,它提供了一种限制程序内存消耗的方法.