请教个问题: jvm手动执行fullGC 使用Jconsole看 堆内存都降下来了 但是在window10上任务管理器里看 java内存占用只升不降 有问题的吗?什么原因啊?

请教个问题: jvm手动执行fullGC 使用Jconsole看 堆内存都降下来了 但是在window10上任务管理器里看 java内存占用只升不降 有问题的吗?什么原因啊?

图一为程序运行14个小时候的堆内存分配情况,看着一直在yangGC 可以回收比较稳定

图二为程序刚启动时候 任务管理器java占用内存情况

图三为程序运行14个小时候任务管理器java占用内存情况

任务管理器java占用内存一直在涨 没降过 发生yangGC 或者 fullGc 都不降请教个问题:  jvm手动执行fullGC 使用Jconsole看 堆内存都降下来了  但是在window10上任务管理器里看  java内存占用只升不降 有问题的吗?什么原因啊?请教个问题:  jvm手动执行fullGC 使用Jconsole看 堆内存都降下来了  但是在window10上任务管理器里看  java内存占用只升不降 有问题的吗?什么原因啊?请教个问题:  jvm手动执行fullGC 使用Jconsole看 堆内存都降下来了  但是在window10上任务管理器里看  java内存占用只升不降 有问题的吗?什么原因啊?

回答

jvm的gc只是回收jvm内的内存而jvm从系统申请的内存是不会还回去的

你可以理解为jvm就是个虚拟机,虚拟机内的内存自己管理你在虚拟机内回收内存不影响外面

挂念是为什么 任务管理器里 java进程内存只增不减 那要增长到耗尽系统内存?程序重启?

不会只增加得,最大到你申请的内存大小,看图就是4G左右

回复
@1024菜bird : 例如初始化是200M,最大500M,开始会申请200M,后边不够用了会扩大到500M回复
@温安适 : 申请内存是啥? 初始化内存?还是最大可用内存?回复
@1024菜bird : 释放的也是实际使用内存,不释放向系统申请的内存,也就是释放蓝色区域,不释放橙色区域!意思是年轻代回收 堆内存会回收,但是任务管理器里看java进程不会释放内存? 当达到4g 触发fullGc 才会释放?

有可能某个线程死锁了,也许对单个业务有影响

该评论暂时无法显示,详情咨询 QQ 群:912889742

请问楼主对这种现象有缘由解释了吗