这可能是一个菜鸟问题,但我需要运行一个处理大型数据集的 Java 应用程序。所以我去-Xmx14G,知道我的机器有16G的物理内存。
不久之后,砰的一声,我的操作系统通知我我的启动盘快满了。我检查了我的进程,没有 OOM 异常,只是它停止了。检查了我的 Activity 监视器,没有说应用程序以全内存容量运行。
JVM 是如何预留/使用内存的?
最佳答案
通常,JVM 会分配新内存,直到堆满为止,在这种情况下,它会进行垃圾回收,释放未引用的对象。如果您为堆分配 14GB,它很可能会消耗那么多内存。
关于java - Java如何保留/使用内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395408/