【发布时间】:2016-11-09 14:30:41
【问题描述】:
从文档中,-Xss 用于设置 JVM 的堆栈大小。但我对这种说法感到很困惑。
在 Java 中,每个线程都有自己的堆栈。是否-Xss指定的数字:
所有线程可以用作堆栈的总内存?例如如果 -Xss 设置为 256K,则所有线程都将在这 256K 内存中创建自己的堆栈。
线程的每个堆栈的大小。例如如果 -Xss 设置为 256K,每个线程将有一个 256K 大的堆栈。因此 10 个线程将总共使用 2560K。
非常感谢。
编辑:
感谢您的回答。看起来它是上面的(2)senario。 -Xss 指定特定线程的最大堆栈大小。
然后我有一个后续问题:这些内存将分配在哪里?
我们可以使用 -Xmx 和 -Xms 指定保留的堆内存。是否会使用这些保留的内存分配堆栈?还是直接从本机内存分配?
【问题讨论】:
-
This answer 声明同义词是“-XX:ThreadStackSize”,这意味着它是每个线程的。