为啥任务管理器显示的内存大于我的简单 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 个进程?
简单的 C# WinForm 应用程序显示在 Visual Studio 中有 3 个线程。任务管理器显示 14-16 个线程。为啥?