【发布时间】:2018-10-14 19:42:52
【问题描述】:
是否可以为特定的新线程定义最大堆分配(考虑到低于分配给 JVM 的最大堆大小的限制)?
示例:将 VM 设置为 -Xms=24m -Xmx=48m 并以编程方式将最大线程堆大小设置为 8m
【问题讨论】:
-
据我所知,堆是所有线程的共享内存,它们唯一拥有的是它们自己的虚拟堆栈,可以使用
-Xss将其设置为最小但不是最大大小标志。
标签: java heap-memory
是否可以为特定的新线程定义最大堆分配(考虑到低于分配给 JVM 的最大堆大小的限制)?
示例:将 VM 设置为 -Xms=24m -Xmx=48m 并以编程方式将最大线程堆大小设置为 8m
【问题讨论】:
-Xss 将其设置为最小但不是最大大小标志。
标签: java heap-memory
不,你不能,只是因为堆在设计上是跨线程共享的。但是,如果您有 stackoverflow(特定于线程),则 -Xss 可以更改堆栈大小。除非您正在与 stackoverflow 作斗争,否则您不太可能需要更改它。
(但是,如果您真的需要这个,您可以尝试进行托管堆外分配,从而让您能够控制内存的使用方式,但是与对象相比,处理字节缓冲区非常不方便......)
【讨论】: