java - JVM 是否在达到其 -Xmx 限制时强制进行垃圾回收?

标签 java memory-management garbage-collection

问题基本都包含在标题中了。

假设您有一个已达到其 JVM -Xmx 限制的应用程序。当该应用程序需要更多内存时是否强制进行垃圾收集? (在 HotSpot JVM 中)

我无法解释的第二件奇怪的事情是,我目前有一个应用程序服务器,它使用 -Xmx=2048m 运行,“top”命令(在 linux 上)报告其进程为 2.7g。

那么如何/何时允许应用程序超过其 -Xmx ?

谢谢,

最佳答案

实际上普通GC是在年轻代满时触发的(不是整个堆),而Major GC是在幸存者空间没有剩余空间时触发,所以需要将一些对象迁移到老年代。

关于java - JVM 是否在达到其 -Xmx 限制时强制进行垃圾回收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9375089/

相关文章:

java - 改进添加 BigIntegers 的方法

java - 将 xstream 与 mysql 一起使用

100字节内存分配失败

c++ - 为什么操作系统分配的内存多于小型可执行文件所需的内存?

java - 如何强制 JVM 清除 WeakHashMap 的所有 WeakReferences/keys

java - Spring Boot @RequestBody 只解析 0/null 值?

java - 在 Java 中将 double[][] 获取到 MATLAB 矩阵的最快方法是什么?

java - 在java中存储二维数组的最小方式

java - 如何检查 ConcurrentLinkedQueue 是否为 GC 留下垃圾(取消引用的实例)?

java - Java 基元是否被垃圾收集