如何使用 VisualVM 查找内存泄漏

2024-03-20

我怀疑我们的 ActiveMQ 连接桥存在重大内存泄漏 - 我们看到了典型的内存泄漏模式(应用程序加载良好,如果长时间运行或在短时间内一遍又一遍地重新启动,则速度会变慢) 。我查找了查找 Java 内存泄漏的现代最佳实践,许多开发人员似乎正在放弃 jhat/jmap 等传统工具,以代替新的(呃)工具jvisualvm.

启动此工具(并花费几个小时阅读其教程)后,我能够获取 CPU 和内存的分析器快照。

我现在有点卡住了——如何分析这些快照来识别泄漏?关于如何使用 jvisualvm 生成快照的文档有很多,但关于如何真正理解它们的文档却很少。

提前致谢。


使用 VisualVM 分析内存泄漏并不那么容易。它有一个名为“采样器”的工具/插件。这可用于对内存或 cpu 进行采样。您可以定期拍摄快照并查找可能的泄漏。以下是有关如何使用它的一些详细信息 - 获取自快速搜索 http://java.dzone.com/announcements/visualvm-12-great-java

更有效的方法是获取堆转储(例如,当应用程序变慢或当OOM 发生 https://stackoverflow.com/questions/542979/using-heapdumponoutofmemoryerror-parameter-for-heap-dump-for-jboss)。 VisualVM 帮助您进行堆转储(使用堆转储 on Monitor tab)

可以通过以下方式分析该文件MAT http://wiki.eclipse.org/index.php/MemoryAnalyzer#Finding_Memory_Leaks- 一些细节在这里如何分析 .hprof 文件? https://stackoverflow.com/questions/185893/how-do-i-analyze-a-hprof-file-

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 VisualVM 查找内存泄漏 的相关文章

  • HTTP 状态 404 - 请求的资源不可用

    在使用 MyEclipse IDE 中的 Tomcat 服务器和 Struts 2 框架时 我遇到了反复出现的问题 我将我的程序作为服务器应用程序运行 当它运行时 默认的index jsp 文件将成功打开 但应用程序的其他过去都不起作用 当
  • 用 @DataJpaTest 注释的测试不是用 @Autowired 注释的自动装配字段

    我有一个 Spring Boot 应用程序 其中包含 Spring Data Jpa 存储库 我需要围绕这个存储库运行单元 或组件 测试 我对 Spring Data Jpa 没有太多经验 这是我的测试 这很简单 我无法让它通过 impor
  • 由于连接超时,无法通过 ImageIO.read(url) 获取图像

    下面的代码似乎总是失败 URL url new URL http userserve ak last fm serve 126 8636005 jpg Image img ImageIO read url System out printl
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • PropertySources 中各种源的优先级

    Spring引入了新的注释 PropertySources对于所有标记为的类 Configuration since 4 0 需要不同的 PropertySource作为论证 PropertySources PropertySource c
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • cucumber-junit-platform-engine 中的功能文件发现

    In cucumber junit我使用的库 CucumberOptions定义功能文件位置 package com mycompany cucumber import cucumber api CucumberOptions import
  • 使用 java 按电子邮件发送日历邀请

    我正在尝试使用 java 发送每封电子邮件的日历邀请 收件人收到电子邮件 但不会显示接受或拒绝的邀请 而是将该事件自动添加到他的日历中 我正在使用 ical4j jar 构建活动 邀请 private Calendar getInvite
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • 不兼容的类型:在 java netbeans 中对象无法转换为 String

    我试图在我的项目中使用对象数组 但出现错误 incompatible types Object cannot be converted to String 在这一行 ST1 new String emt1 emt2 emt3 emt4 现在
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • Java中有类似分支/跳转表的东西吗?

    Java有类似分支表或跳转表的东西吗 分支表或跳转表是 根据维基百科 http en wikipedia org wiki Branch table 用于描述使用分支指令表将程序控制 分支 转移到程序的另一部分 或可能已动态加载的不同程序
  • Java 推断泛型类型

    我正在寻找类似的推断捕获泛型类型的概念 类似于以下方法片段 但不是捕获泛型类型的类 public

随机推荐

  • 射线交叉未击中目标

    我正在尝试选择一个 3d 点 我阅读了各种网站 但我的代码不起作用 鼠标右键单击 glGetFloatv GL MODELVIEW MATRIX mv mat glGetFloatv GL PROJECTION MATRIX p mat i
  • C# Assert.AreNotEqual 与 Equals

    在尝试向自己验证 C Equals for IEnumerables 是一个引用 equals 时 我发现了一些奇怪的东西 在 NUnit 中进行以下设置 var a IEnumerable
  • QNetworkAccessManager没有完成信号

    我想直接请求和响应而不是使用connect SLOT finished SLOT 您可以使用QEventLoop以便应用程序等待并可以同时处理其他事件 include
  • 在 Cocoa 中获得机器唤醒+用户登录通知的可靠方法?

    我尝试过注册NSWorkspaceDidWakeNotification with NSNotificationCenter defaultCenter 但当我的 MacBook Pro 从睡眠状态唤醒时 它永远不会触发 我注册了其他通知
  • Kotlin:如何绕过 CancellationException

    我正在将一些旧的 RxJava 代码移植到协程中 使用 RxJava 我可以在我的活动中执行此操作 someBgOperation as AutoDispose autoDisposable AndroidLifecycleScopePro
  • PHP – setcookie() 不起作用

    我有这个页面 它设置一个 cookie 并在您选中复选框时回显一个字符串 字符串打印正确 但 cookie 从未被设置 我不知道为什么
  • 如何启用Windows 10“容器”功能?

    使用最新的 Windows 10 Fast Ring build 14316 在 VMware 虚拟机内 我试图使桌面应用程序转换器 https msdn microsoft com windows uwp porting desktop
  • 编码/gob 和编码/json 之间的区别

    我正在用 Go 编写一个应用程序 它使用编码 gob 在节点之间通过 UDP 发送结构和切片 它工作正常 但我注意到encoding json也有类似的API 搜索了一下 发现了这个信息 https golang org pkg encod
  • 使用 Spring Security (Spring Boot 3.0.2) 时如何访问 H2 控制台?

    所以我正在尝试学习 Spring 因为今年晚些时候我的一个项目将需要它 项目使用 Spring Boot 3 0 2 和 Java 17 我还使用 Spring Security 依赖项 这意味着我需要在不使用令牌的情况下授权某些 URL
  • 使用 X509certificate2 进行 RSA 加密和解密

    所以 我接下来需要的是 创建用于开发的证书 为客户端获取一份证书 为服务器获取一份证书 通过API检索客户端编码的密码并在服务器上解码 现在 我成功创建了以下证书这个链接 https blog jayway com 2014 09 03 c
  • 禁用屏幕键盘

    我正在为嵌入式应用程序开发 Windows 应用商店应用程序 其中唯一的输入设备是小型触摸屏 因此 我正在开发自己的数字和文本输入控件 它们与应用程序的视觉外观相匹配 并且在小屏幕上工作得更好 当文本框获得焦点时 是否可以防止 Window
  • num2cell() 的 python/numpy 等价物是什么?

    我很不幸能够通过 numpy 数组将一些 MATLAB 代码转换为 Python 有没有共识num2cell 就我个人而言 我认为这违背了 Python numpy 语法 这个想法是这样的 Using num2cell 你最终会得到一个看起
  • Spring中指定默认属性值为NULL

    我想在 Spring XML 配置文件中定义默认属性值 我希望这个默认值是null 像这样的东西
  • ap 在 Haskell 中如何以及为何被定义为 liftM2 id

    在试图更好地理解 Applicative 的同时 我查看了 的定义 它往往被定义为 ap 而 ap 又被定义为 ap Monad m gt m a gt b gt m a gt m b ap liftM2 id 查看 liftM2 和 id
  • 如何在提交前更改隐藏输入字段的值

    我有一个 Feedburner 订阅表格 其中有两个按钮 一个用于每日新闻 一个用于每周新闻 问题是如何更改带有名称的隐藏输入字段的值 uri 提交之前 我的解决方案不起作用 这就是我尝试使用的
  • 如何在vi中从中间开始缩进多行?

    例如 要转换这个 example array First gt This Second gt is Third gt an Fourth gt example Fifth gt 进入这个 example array First gt Thi
  • 按数据属性对列表进行排序

    我有一个人员列表 其职称按名字排序 如下所示 ul li a href span class list name John Smith span a span class list desc Professor span li li a h
  • 在 iOS 模拟器中运行 React Native 应用程序时找不到 UMModuleRegistryAdapter.h

    我有一个简单的 React Native 应用程序 我一直在 Android 上测试它 现在想在 iOS 上测试它 它使用 React 导航 I ran npm run ios但我收到以下错误 info In file included f
  • 如何找到终结器队列挂起的原因?

    我有一个应用程序从 go 开始就经历了缓慢的内存泄漏 Using ANTS 内存分析器我可以看到所有泄漏的内存都由终结器队列的 GC 根保存 我怀疑可能发生的情况是终结器死锁 等待锁变得可用 我们的类都没有实现显式终结器 我们通常避免使用它
  • 如何使用 VisualVM 查找内存泄漏

    我怀疑我们的 ActiveMQ 连接桥存在重大内存泄漏 我们看到了典型的内存泄漏模式 应用程序加载良好 如果长时间运行或在短时间内一遍又一遍地重新启动 则速度会变慢 我查找了查找 Java 内存泄漏的现代最佳实践 许多开发人员似乎正在放弃