首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中找到导致堆空间错误的对象/线程?(VisualVM,MemoryAnalyzer)

如何在Java中找到导致堆空间错误的对象/线程?(VisualVM,MemoryAnalyzer)
EN

Stack Overflow用户
提问于 2015-05-21 15:11:04
回答 2查看 555关注 0票数 0

我使用的是ETL软件戊an (只是稍微相关) --它是建立在Java之上的。每次在进程的80个循环之后,我会得到堆空间错误--我可以增加分配给Java -xmx2048或什么的内存,但是这只是“延迟”了错误,并且是一个带宽修复。

我有VisualVM和MemoryAnalyzer,但正在试图找出导致外部对象持久化的根本原因/对象/线程。在VisualVM中,我可以看到堆空间内存随着时间的推移逐渐增加。我不知道我到底该怎么做才能找到原因。分析错误时的堆转储?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-21 15:18:01

有几种处理这个问题的工具:尝试:

  1. JProfiler
  2. 尤尔杰

Jprofiler实际上是一个很好的工具,可以跟踪应用程序中的内存泄漏。您可以按类或包级别修改。

票数 2
EN

Stack Overflow用户

发布于 2015-05-21 15:44:57

如果命令行工具没有吓到您,请尝试aprofhttps://github.com/devexperts/aprof

当您由于某种原因而不得不在生产环境中进行概要分析时(例如,您不能在任何其他地方复制问题),这是非常有用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30377702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档