【问题标题】:Defining max heap size for a single thread [duplicate]为单个线程定义最大堆大小[重复]
【发布时间】:2018-10-14 19:42:52
【问题描述】:

是否可以为特定的新线程定义最大堆分配(考虑到低于分配给 JVM 的最大堆大小的限制)?

示例:将 VM 设置为 -Xms=24m -Xmx=48m 并以编程方式将最大线程堆大小设置为 8m

【问题讨论】:

  • 据我所知,堆是所有线程的共享内存,它们唯一拥有的是它们自己的虚拟堆栈,可以使用-Xss 将其设置为最小但不是最大大小标志。

标签: java heap-memory


【解决方案1】:

不,你不能,只是因为堆在设计上是跨线程共享的。但是,如果您有 stackoverflow(特定于线程),则 -Xss 可以更改堆栈大小。除非您正在与 stackoverflow 作斗争,否则您不太可能需要更改它。

(但是,如果您真的需要这个,您可以尝试进行托管堆外分配,从而让您能够控制内存的使用方式,但是与对象相比,处理字节缓冲区非常不方便......)

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 2010-09-15
    • 2011-10-09
    • 1970-01-01
    • 2018-04-14
    • 2013-04-14
    • 2018-09-29
    相关资源
    最近更新 更多