gpt4 book ai didi

java - JVM内存: Why memory on task manager difference with JProbe (or JConsole tool)

转载 作者:IT王子 更新时间:2023-10-28 23:34:12 26 4
gpt4 key购买 nike

我遇到的问题是我的应用程序使用的内存只有 100MB,之后它减少了 50MB,但是在窗口任务管理器上它显示 150MB 并且总是保持或增加而不是减少,我们如何 reduce task 管理器上的内存(私有(private)工作集)?

最佳答案

您在 JConsole(或其他监控工具)中看到的是 java 内存的使用模式。

JVM 的内存通常在这些区域之间划分(您也可以在监控工具中看到)。

  1. 用于 Java 对象的堆内存
  2. 非堆内存是java存储加载类的地方元数据和 JVM 代码
  3. native 内存是为 dll 和Java的 native 代码(非常低级)。有时你会得到一个OOM在这个区域,当你有足够的堆内存时(因为你增加 Max Heap 大小,它会减少 native 内存可用)。

Windows 任务管理器没有显示。它显示了您的应用程序使用的整个内存(堆+非堆+ native 部分)。

另请注意,通常进程会从操作系统请求更多内存,即使实际应用程序“释放”内存,这些内存也会由它们保留。这些内存页已被映射为进程地址空间的一部分。因此,在您的任务管理器中,您不会看到内存减少的模式,但这并不表示您的应用程序存在内存泄漏。
所以你不能减少你从任务管理器看到的内存,但是你从监控工具看到的内存应该会在某个时候减少,否则可能表明内存泄漏

关于java - JVM内存: Why memory on task manager difference with JProbe (or JConsole tool),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12017437/

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