分配给jvm进程的总内存等于总堆,堆栈,本机堆。我知道有一些命令可以在堆上设置最小和最大大小限制。
如何分配给jvm进程的总内存,是否存在限制,或者随着创建的线程数量的增加而继续增加。
如果线程数没有限制,并且由于在创建新线程时创建了新堆栈,这会导致jvm继续增加其大小,直到RAM中没有剩余内存吗? / p>
答案 0 :(得分:0)
总堆。新线程使用堆内存。如果你有太多的话,你就是OOME。试试吧?
答案 1 :(得分:0)
据我所知,情况如此。线程堆栈在JVM堆栈和特定于操作系统中分配。
您可以使用-Xss来控制默认堆栈大小,但不能控制其上限。
有趣的文章
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