我正在编写一个Java程序,并且在执行期间的某个时刻我想要更改JVM设置(减少堆),并在一段时间后再次增加它。是否可以使用Java?
答案 0 :(得分:1)
长话短说:你不能。堆运行后,堆大小是固定的,并且无法从代码中修改它。
答案 1 :(得分:1)
我认为这不可行,但您当然可以使用 -Xmx 或 -Xms 来控制堆。 您还可以使用: -XX:MaxHeapFreeRatio :这是在GC缩小之前空闲的堆的最大百分比(默认为70,如果我没有记错)。
给一个小的-Xms将使堆增长(如果需要并且将涉及一个完整的GC)并且也可以缩回。
一般来说,人们会尽量避免这种萎缩和增长,因为它涉及到一个海鸥GC,也就是世界各地的事件,这会减慢你的速度。