我正在尝试查看 Java 中的内存管理。我有一个创建大型集合(~500MB)的程序。我运行时java
没有任何特殊参数。一旦这个集合超出范围,我使用System.gc()
. 从 jconsole 中,我可以看到正在使用的堆内存显着减少。对于top
linux 命令的 RES 输出,情况并非如此。
我唯一的解释是,一旦 JVM 获得内存,只要它正在运行,它就不会将其释放给系统。这个对吗?
我正在尝试查看 Java 中的内存管理。我有一个创建大型集合(~500MB)的程序。我运行时java
没有任何特殊参数。一旦这个集合超出范围,我使用System.gc()
. 从 jconsole 中,我可以看到正在使用的堆内存显着减少。对于top
linux 命令的 RES 输出,情况并非如此。
我唯一的解释是,一旦 JVM 获得内存,只要它正在运行,它就不会将其释放给系统。这个对吗?