在java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的日志的时
候,我们才知道原来代码中有死锁。撇开代码检查工具,我们先讨论一下利用VisualVM监控,分析我们的多线程的运行情况。(注:实践本文内容的JDK
的版本需要1.6.07以上)
什么是VisualVM
VisualVM是JDK的一个集成的分析工具,自从JDK 6 Update 7以后已经作为Sun的JDK的一部分。
VisualVM可以做的:监控应用程序的性能和内存占用情况、监控应用程序的线程、进行线程转储(Thread Dump)或堆转储(Heap
Dump)、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,保存快照以便脱机分析应用程序;同时它还支持在MBeans上进行浏览和操作。尽管
VisualVM自身要在JDK6以上的运行,但是JDK1.4以上版本的程序它都能被它监控。
在JDK1.6.07以上的版本中:到$JAVA_HOME/bin,点击jvisualvm.exe图标就可以启动VisualVM;当然也可以点击这里
获取官方的最新版本,支持:英文,中文,日文。
VisualVM功能集成较多,我们这里只讨论它对象线程的监控分析。
当我们运行VisualVM的时候,可以在应用程序》本地中看到VisualVM和eclipse的运行程序,然后我们启动eclipse中的一个线
程:com.longtask.thread.TestVisualVm,可以看到在菜单中多了一个该线程的显示。点击右边的 线程
菜单,可以看到线程运行的跟踪情况。
点击 thread dump,可以生成该线程的运行情况的tdump文件,通过thread dump提供的相关信息,我们可以看到线程在什么地方被阻塞了以及线程的其他状态。
把日志另存为文件,到Thread Dump Analyzer
的主页点击
图标下载TDA,然后用TDA打开刚才VisualVM保存的 thread dump文件,查看相关的分析结果。
我们也可以用VisualVM来监控远程java线程的运行情况。
分享到:
相关推荐
**VisualVM 简介** VisualVM 是一款强大的 Java 应用程序监控和诊断工具,它集成了一系列的 JDK 命令行工具,如 jps、jstat、jinfo、jmap、jstack 和 jhat,提供了一个统一的图形用户界面,方便开发者深入了解 Java...
1. **VisualVM简介** VisualVM是一个集成式的多用途工具,它允许用户监控本地和远程的Java应用。通过提供实时的性能数据,如内存占用、CPU使用率、线程状态和类加载信息,VisualVM帮助开发者快速定位和解决性能问题...
#### 一、VisualVM简介 VisualVM是一款由Oracle提供的免费、开源的可视化工具,用于监控和调试Java应用程序。该工具能够帮助开发者深入理解Java虚拟机(JVM)上的应用程序行为,提供了丰富的功能集合,如性能监控、...
#### 二、VisualVM简介 VisualVM通过多种技术手段(例如jvmstat、JMX、SA以及Attach API)获取程序运行时的数据,并以此为基础进行动态性能分析。此外,VisualVM还会根据具体情况自动选择更为高效的技术方案,以...
#### 一、VisualVM简介 **VisualVM** 是一款由Sun Microsystems(现已被Oracle收购)开发的免费、开源的工具,用于监视和调试基于Java的应用程序。它集成了多种原本独立存在的命令行工具,如`jstat`, `JConsole`, `...
1. VisualVM简介 VisualVM是一个开源的监控工具,它整合了jstat、JConsole、jstack、jmap和jinfo等JDK自带的命令行工具。这些命令行工具都是JDK的标准组件,可用于JDK1.4及以上版本的应用程序。VisualVM的目的是为...
一、VisualVM简介 VisualVM是由Oracle公司开发的一款免费工具,它基于JDK自带的JConsole和NetBeans平台构建,旨在提供一个统一的界面来监控和诊断Java应用程序。通过集成多种JDK工具,如jmap、jstack和jinfo,...
1. **VisualVM简介** VisualVM是Oracle公司提供的一款免费工具,它集成了多个JDK诊断工具,如jconsole、jmap、jhat等,可以实时监控和分析Java应用程序的内存、线程、类、JVM参数等信息,特别适用于CPU和内存性能的...
#### 二、VisualVM简介 VisualVM是一款由Oracle公司提供的免费、开源的Java监控工具,它可以集成到JDK中,无需额外安装。通过VisualVM,用户能够轻松监控本地或远程Java应用程序的CPU使用率、内存消耗情况、线程分析...
Visual VM 简介 VisualVM 的图形用户界面提供了多个 Java 应用程序的相关信息,可以快速、方便地查看多个 Java 应用程序的详细信息。VisualVM 能够提供强大的分析能力,囊括多个 JDK 命令行工具,如 jstat, ...
一、JVisualVM简介 JVisualVM是Java Development Kit(JDK)的一部分,自JDK 6 Update 7开始被引入,它集成了多种Java性能分析和故障排查工具,如JConsole、JProfiler、Memory Monitor、Thread Monitor等。通过直观...
Java 自带的性能监控工具使用简介 Java 自带的性能监控...Java 自带的性能监控工具使用简介,包括 VisualVM 和 JConsole,这些工具可以帮助开发者快速监控和优化 Java 应用程序的性能,提高应用程序的性能和可靠性。
### JVisualVM简介 JVisualVM是Java平台的一个强大的可视化工具,它可以帮助开发者监测和调试应用程序的性能问题,特别是那些与内存管理相关的故障。作为NetBeans的一个子项目,JVisualVM自JDK 1.8起就已经被集成到...
Java VisualVM,简称jvisualvm,是Java开发人员在Windows环境下进行内存管理和性能分析的重要工具。它是Oracle JDK的一部分,提供了一种直观的方式来监控和诊断Java应用程序。本文将深入探讨jvisualvm的功能、使用...
一、JVisualVM简介 JVisualVM是Oracle JDK的一部分,它允许开发者在运行时检查和诊断Java应用程序。这个工具集成了多种功能,包括但不限于: 1. **内存监测**:实时查看堆内存使用情况,查找内存泄漏。 2. **线程...
一、JVisualVM简介 JVisualVM是一款图形化界面的工具,它集成了许多JDK诊断工具的功能,如jmap、jstack、jinfo等,使得开发者无需记住复杂的命令行操作,就能轻松进行性能分析。此外,JVisualVM还支持远程连接,...
#### SonarQube简介 SonarQube 是一款用于代码质量管理与环境搭建的强大工具,其核心价值在于帮助开发者在软件开发周期早期阶段发现并解决代码质量问题。SonarQube 支持多种编程语言,包括但不限于 Java、C/C++、C#...
6. **性能优化**:了解JVM内存模型和垃圾回收机制,使用VisualVM或JProfiler进行性能分析。学习如何调优启动参数,避免内存溢出。 7. **并发编程**:深入理解Java并发库,如线程池(ExecutorService)、并发容器...