我感兴趣是否有一种方法可以动态增加或缩小Java占用的内存?我知道这通常是在应用程序启动时完成的,但在生产时看到这一点会非常酷。
最佳答案
JVM 已经做到了这一点。它根据使用情况调整堆大小,并且可以将内存返回给操作系统(尽管并非总是如此)
你无法改变的是最大值。您无法更改它的原因是它在启动时将此虚拟内存保留为单个连续 block ,这意味着它无法缩小或增长它。
给出的最大值就是这样,我建议设置为一个较高的值,您宁愿 JVM 失败也不愿分配更多内存。在这种情况下,调整这个恕我直言是没有意义的。
顺便说一句,我不建议设置最小大小,除非您非常了解应用程序的工作负载和使用情况(以及将来)。最小值通常是为基准设置的,已知应用程序的负载和版本,但这对于具有不同负载和随时间变化的代码的应用程序来说并不是一个好主意。
关于java - 在运行时配置内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18845330/