在linux环境下,通过top命令查看java进程的占用内存大小,一般都是看res(进程常驻内存)值,该值包含了整个java进程占用的内存,包括本地内存和堆内存,所以想问一下,如果jvm发生gc,jvm heap会回收一部分内存,这时候,res的值是否也会跟着变化?
在linux环境下,通过top命令查看java进程的占用内存大小,一般都是看res(进程常驻内存)值,该值包含了整个java进程占用的内存,包括本地内存和堆内存,所以想问一下,如果jvm发生gc,jvm heap会回收一部分内存,这时候,res的值是否也会跟着变化?
4 回答1.3k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
1 回答997 阅读✓ 已解决
2 回答721 阅读✓ 已解决
1 回答712 阅读✓ 已解决
3 回答730 阅读✓ 已解决
目前的 JVM 尚无返还内存资源给操作系统的做法,因此即使 JVM 执行了 GC,也并未释放内存给操作系统。但不必担心 Java 会将全部内存吃掉,因为长期来看,只要 Java 程序中不存在内存泄漏的 BUG,那么 JVM 的内存用量是必然存在上限的,长期运行也不会超过上限。