gpt4 book ai didi

java - 监控Java内部对象和内存使用情况

转载 作者:行者123 更新时间:2023-11-30 02:54:35 26 4
gpt4 key购买 nike

我有一个作为 Windows 服务运行的 Java Web 服务器。我使用 Tomcat 8 和 Java 1.8.*几个月来,我发现内存使用量增长得相当快。我无法确定它是堆还是堆栈。该过程开始时约为 200MB,大约一周后,它可以达到 2GB。不久之后就会产生OutOfMemory异常(内存使用量为2GB - 2.5GB)。这已在多个环境中重复多次。

我想知道是否有一种方法可以监视进程并查看其内部内存使用情况,甚至可以查看哪些对象使用最多的内存。可以使用“Java native 内存跟踪”吗?这将帮助我检测可能导致此问题的任何内存泄漏。

提前致谢。

最佳答案

为了监视 Java 进程的内存使用情况,我将使用 JMX 客户端,例如 JVisualVM,它与 Oracle JDK 捆绑在一起:

https://visualvm.java.net/jmx_connections.html

为了确定内存泄漏的原因,我会指示 JVM 在内存不足时进行堆转储(在 Oracle JVM 上,这可以通过在启动 Java 程序时指定 -XX:-HeapDumpOnOutOfMemoryError 来完成) ,然后使用 Eclipse MAT 等工具分析堆转储.

关于java - 监控Java内部对象和内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37641033/

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