Can I change JVM parameters during execution
本问题已经有最佳答案,请猛点这里访问。
我正在编写一个Java程序,在执行过程中的某个时候,我想更改JVM设置(减少堆),并在一段时间后再次增加它。 Java有可能吗?
我认为这是不可能的,但是您当然可以使用-Xmx或-Xms控制堆。
您还可以使用:-XX:MaxHeapFreeRatio:这是GC收缩之前空闲的堆的最大百分比(如果我没有记错的话,默认为70)。
赋予较小的-Xms将使堆增大(如果需要,并且将涉及完整的GC),并且还可以缩小。
通常,人们会尽量避免这种收缩和增长,因为它涉及鸥GC(又称为世界停止事件),会使您减速。
长话短说:你不能。 堆大小在运行后是固定的,无法通过代码进行修改。