分配给 jvm 进程的总内存等于总堆、栈、本机堆。我知道有一些命令可以设置堆的最小和最大大小限制。
分配给jvm进程的总内存怎么样,是否有限制,或者它会随着创建的线程数量的增加而继续增加。
如果线程数没有限制,并且由于在创建新线程时会创建新堆栈,这是否会导致 jvm 继续增加其大小,直到 RAM 中没有更多内存?
分配给 jvm 进程的总内存等于总堆、栈、本机堆。我知道有一些命令可以设置堆的最小和最大大小限制。
分配给jvm进程的总内存怎么样,是否有限制,或者它会随着创建的线程数量的增加而继续增加。
如果线程数没有限制,并且由于在创建新线程时会创建新堆栈,这是否会导致 jvm 继续增加其大小,直到 RAM 中没有更多内存?
据我所知是这样。线程堆栈分配在 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
总堆。新线程使用堆内存。如果你有太多的话,你会OOME的。试试看?