任务管理器两个java进程_java监视和管理控制台(jconsole)显示项目进程的内存为什么和windows任务管理器不一样?...

自己在网上找到了想要的答案:

jvm不会把已经申请的内存还给OS, 因为很可能马上又要分配给新的对象,每次向 OS 申请内存是很慢的。

所以管理控制台显示的内存使用情况和windows任务管理器中的不一样。

jvm中有两个参数 MaxHeapFreeRatio, MinHeapFreeRatio 可以收缩堆,还内存给OS, 但只在client 模式下有效,而且是分次返还,0% on the first call, 10% on the second call, 40%, on the third call, and 100% by the fourth call.

例如:

java -client -verbose -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xmx100m -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=30

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页