linux的top命令看到的java进程的res内存占用是否会跟着gc而变化?

在linux环境下,通过top命令查看java进程的占用内存大小,一般都是看res(进程常驻内存)值,该值包含了整个java进程占用的内存,包括本地内存和堆内存,所以想问一下,如果jvm发生gc,jvm heap会回收一部分内存,这时候,res的值是否也会跟着变化?

阅读 6.9k
1 个回答

目前的 JVM 尚无返还内存资源给操作系统的做法,因此即使 JVM 执行了 GC,也并未释放内存给操作系统。但不必担心 Java 会将全部内存吃掉,因为长期来看,只要 Java 程序中不存在内存泄漏的 BUG,那么 JVM 的内存用量是必然存在上限的,长期运行也不会超过上限。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题