为jvm进程分配了多少内存

时间:2013-04-09 18:12:18

标签: java

分配给jvm进程的总内存等于总堆,堆栈,本机堆。我知道有一些命令可以在堆上设置最小和最大大小限制。

如何分配给jvm进程的总内存,是否存在限制,或者随着创建的线程数量的增加而继续增加。

如果线程数没有限制,并且由于在创建新线程时创建了新堆栈,这会导致jvm继续增加其大小,直到RAM中没有剩余内存吗? / p>

2 个答案:

答案 0 :(得分:0)

总堆。新线程使用堆内存。如果你有太多的话,你就是OOME。试试吧?

答案 1 :(得分:0)

据我所知,情况如此。线程堆栈在JVM堆栈和特定于操作系统中分配。

您可以使用-Xss来控制默认堆栈大小,但不能控制其上限。

有趣的文章

http://www.onkarjoshi.com/blog/209/using-xss-to-adjust-java-default-thread-stack-size-to-save-memory-and-prevent-stackoverflowerror/

http://blog.codecentric.de/en/2010/01/the-java-memory-architecture-1-act/

http://book.javanb.com/java-threads-3rd/jthreads3-CHP-13-SECT-6.html