JAVA:为什么要释放堆内存而不反映在任务管理器中

时间:2019-06-27 12:47:10

标签: java heap-memory

我正在运行具有以下JVM参数的应用程序,

-J-Xms2048m -J-Xmx2048m -J-XX:MaxMetaspaceSize=1024m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-Djava.net.preferIPv4Stack=true"

当我启动该应用程序时,

堆内存为 120MB / 2048MB ,任务管理器中“特定进程”(在“内存”列-“进程”选项卡中)显示的内存为 680MB

现在我要执行繁重的任务,

我的堆看起来像这样,

enter image description here

如图所示,启动应用程序后,运行了一个繁重的任务,完成后又回到了先前的状态。

但是,在任务管理器(物理内存)中,该进程已从680MB变为2300MB,并且没有下降,

enter image description here

我无法理解这里的关系。

为什么释放堆内存时,物理内存没有减少?    -是因为分配内存的成本很高,并且分配的时间不是立即释放的吗?

0 个答案:

没有答案