【发布时间】:2016-11-06 12:46:31
【问题描述】:
我编写了一个 java 应用程序,并在 Fedora 24 下运行了 java 进程。然后我检查了 jconsole,发现它使用了大约 5 到 10 兆字节的内存。 垃圾回收的效果在图中也可见。
然后我检查了我的系统监视器,发现同一个进程 ID 的内存使用量超过 100 兆。
截图如下:
请告诉我为什么进程不释放未使用的内存?
有什么办法可以释放吗?
【问题讨论】:
-
这是什么java应用程序?摇摆?
-
@CoderinoJavarino 没有。这些名字在他们的标题和我的文字中可见。
-
你为什么在乎?这适用于 Intellij,一个非常大的基于 Java 的程序。您并没有抱怨 Chrome 在至少显示的两个进程中占用了超过 100MB 的空间。 100MB 并不是非常多的内存——你的 Gnome 进程会占用更多的内存。如果您真的有问题,请告诉我们。 100MB 的内存已经不算什么了。
-
@stdunbar 我很在意,因为我在 Mono 和 .NET 中没有遇到过这种问题。我知道 100 MB 不算什么,但我问这个问题是为了提高我的知识,而不是因为遇到问题。
-
您正在查看 IntelliJ 的内存 - 而不是您的进程本身。使用 Java 命令在命令行上运行程序,因为很难从 IntelliJ 中分离出您的进程及其内存消耗。
标签: java memory memory-management heap-memory