【发布时间】:2014-08-25 03:49:45
【问题描述】:
如果我错了,请纠正我,但是在 C/C++ 堆中没有限制,你不需要传递任何参数来增加它。
那么为什么java对堆有限制呢?
【问题讨论】:
-
可能与 Java 有垃圾收集器而 C 和 C++ 都没有的事实有关。
-
@Rufflewind 什么……但是为什么你需要限制它?为什么不让它爆炸记忆
-
C/C++ 堆确实有限制。已安装内存/可用虚拟内存的限制。以先到者为准。由于 GC,Java 有一个更有趣的限制,但它确实会根据需要增长,直到内存不足。就像任何其他程序一样。
-
哦,所以这个限制,以及增加它的论据,是针对 GC 的吗?现在有意义了
-
Java VM 是“安全的”。它为程序创建沙箱。因此,当您为 VM 加注星标时,您可以定义空间的最大限制(Xmx 和 Xms 选项)。这将防止服务器分配太多空间,并且会破坏 VM 而不是整个服务器。例如,Erlang Web 服务器会在需要时吃掉所有内存,并且可以挂起计算机导致重新启动,但 JMV 不会,因此您可以轻松地使用脚本重新启动它。
标签: java c memory heap-memory