gpt4 book ai didi

java - Windows 任务管理器 javaw.exe 内存与 Java 任务控制

转载 作者:搜寻专家 更新时间:2023-11-01 02:42:43 28 4
gpt4 key购买 nike

我正在使用我的 Windows 7 机器帮助开发一个 Java 应用程序,它有 Java 8 Update 45。我注意到 Windows 任务管理器表示应用程序使用的内存量有很大差异(通过 javaw. exe 图像),以及 Eclipse 内存分析器/Java 任务控制报告的内容。

示例:Java Mission Control 报告使用了 150 MB 的 Java 堆内存,而 Windows 表示 303 MB 的工作集用于 javaw.exe。我知道 JVM 本身、GC 等可能会有一些开销。

但我也看到它在进行 GC。在点击一下以增加内存后,JMC 显示已执行 GC 并表示已使用 200 MB 的堆。 Windows 报告 619 MB(它从未下降)。 Windows 是否没有正确显示 Java 的内存使用情况?应用程序的某些问题导致了这种情况的发生?

最佳答案

当 JVM 启动时,它会为堆分配一 block 连续的内存区域。此内存可以延迟转换为实际内存,但几乎不会传回给操作系统。

堆只是 JVM 使用的一个内存区域。它对您来说可能是最重要的,但是当您的堆非常小时,与 JVM 使用的其他区域相比它可能很小。这包括

  • 原生内存,例如直接字节缓冲区。
  • GUI 原生组件。
  • 共享库。
  • jar 文件。
  • 元空间(或永久代)
  • 线程堆栈内存。

Is Windows not displaying memory usage by Java properly?

Windows 显示所有使用的内存,而不仅仅是堆使用的部分。

Something with the application cause this to happen?

Windows 不知道您使用的最大堆大小有多少。

关于java - Windows 任务管理器 javaw.exe 内存与 Java 任务控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com