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