关于Java:执行期间可以更改JVM参数吗

Can I change JVM parameters during execution

本问题已经有最佳答案,请猛点这里访问。

我正在编写一个Java程序,在执行过程中的某个时候,我想更改JVM设置(减少堆),并在一段时间后再次增加它。 Java有可能吗?


我认为这是不可能的,但是您当然可以使用-Xmx或-Xms控制堆。
您还可以使用:-XX:MaxHeapFreeRatio:这是GC收缩之前空闲的堆的最大百分比(如果我没有记错的话,默认为70)。

赋予较小的-Xms将使堆增大(如果需要,并且将涉及完整的GC),并且还可以缩小。

通常,人们会尽量避免这种收缩和增长,因为它涉及鸥GC(又称为世界停止事件),会使您减速。


长话短说:你不能。 堆大小在运行后是固定的,无法通过代码进行修改。