JVisualVM简介与内存泄漏分析

本文介绍了JVisualVM的用途,包括监控线程、内存状况、CPU时间和对象分配。通过模拟内存泄漏的Demo,展示了如何利用JVisualVM分析内存泄漏问题,包括观察Visual GC、使用抽样器、对比堆内存快照,以及查看对象引用关系来定位问题。此外,还讲述了如何远程监控Tomcat应用,并给出了一些JVM优化建议。
摘要由CSDN通过智能技术生成

一、JVisualVM能做什么

VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。
在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.6.0_13\bin)目录下面,有一个jvisualvm.exe文件,双击打开,从UI上来看,这个软件是基于NetBeans开发的了。
可以进行远程和本地监控。远程监控需要打开jmx,下面内容会提到。

其默认页面为:

左侧分为本地和远程。双击本地中VisualVM线程,可以看到如下监控内容:

二、准备模拟内存泄漏demo

  • 1、定义静态变量HashMap
  • 2、分段循环创建对象,并加入HashMap
import java.util.HashMap;
import java.util.Map;
public class CyclicDependencies {
    //声明缓存对象
    private static final Map map &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值