为啥任务管理器显示的内存大于我的简单 hello world java 应用程序的最大堆内存?

Posted

技术标签:

【中文标题】为啥任务管理器显示的内存大于我的简单 hello world java 应用程序的最大堆内存?【英文标题】:why does task manager show memory more than maximum heap memory for my simple hello world java application?为什么任务管理器显示的内存大于我的简单 hello world java 应用程序的最大堆内存? 【发布时间】:2019-09-27 06:17:59 【问题描述】:

我可以在 jconsole 中看到,我的简单 java hello world 应用程序占用 1 MB 或 2 Mb,但在任务管理器中显示为 12 MB。我需要了解它以便分析我们的 java-native 层应用程序中的一个问题,该应用程序在 jconsole 中仅显示 40 MB 内存,我们发现这是正常的,即使在本地层上也没有任何内存密集型操作。在生产环境中,任务管理器显示 373 MB,远远超出我们的预期。

注意:我们还没有内存不足错误,我们宁愿有一个看门狗服务,当内存超过 250 MB 时它会抱怨并开始将其记录到日志文件中。

【问题讨论】:

【参考方案1】:

这个article 可能会对您有所帮助。原因是windows不只显示堆内存,而是显示windows进程的整体内存。 jvisualvm 或 jconsole 等 jvm 工具显示了 java 进程使用的确切堆空间

【讨论】:

以上是关于为啥任务管理器显示的内存大于我的简单 hello world java 应用程序的最大堆内存?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Apache HTTP 服务器在任务管理器上显示 2 个进程?

高手帮我解释几个WIN7任务管理器的简单问题!

简单的 C# WinForm 应用程序显示在 Visual Studio 中有 3 个线程。任务管理器显示 14-16 个线程。为啥?

为啥任务管理器的进程条不见了?

为啥 Windows 任务管理器在写入非常大的文件时显示内存增加?我应该担心吗? [关闭]

如何像 Windows 任务管理器中显示的那样获得可用的物理内存