【Java记录】Java性能调优,使用Java VisualVM多线程分析

17 篇文章 1 订阅
订阅专栏

一、VisualVM介绍

VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。

VisualVM 提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序的详细信息。VisualVM 对 Java Development Kit (JDK) 工具所检索的 JVM 软件相关数据进行组织,并通过一种使您可以快速查看有关多个 Java 应用程序的数据的方式提供该信息。您可以查看本地应用程序或远程主机上运行的应用程序的相关数据。此外,还可以捕获有关 JVM 软件实例的数据,并将该数据保存到本地系统,以供后期查看或与其他用户共享。

二、VisualVM使用

    1.默认安装在jdk的bin目录下面,双击jvisualvm.exe即可,我的目录在 C:\Program Files\Java\jdk1.8.0_212\bin

    2.双击打开后页面

    3.左侧显示的本地启动的线程,点击你对应启动的程序

我们可以看到当前选择程序的,实时线程,守护线程

4.程序运行时候,可以看到线程的变化,我这里开了10个线程

VisualVM将线程的状态分为五种:运行、休眠、等待、驻留、监视,与Thread类中的线程状态对应如下:

Thread类VisualVM
RUNNABLE 运行运行
TIMED_WAITING (sleeping)休眠休眠
TIMED_WAITING (on object monitor) WAITING (on object monitor)等待
TIMED_WAITING (parking) WAITING (parking)空闲驻留
BLOCKED (on object monitor) 阻塞监视

所以说我上面10个线程,都是处于阻塞状态


5.其他功能

监视页面,可以看到CPU,堆,类的使用信息。

其他的页面可以自行去查看。

 

有问题欢迎留言讨论,不定时回复!

Java性能调优:利用VisualVM进行性能分析,面试训练app
m0_60635176的博客
04-10 385
本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作碰到的问题还是被面试官问到的问题都能迎刃而解!MySQL50道高频面试题整理:一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!取:vip1024b (备注Java)**
VisualVM监控备忘(n)
黑白猪的世界
06-15 303
 在java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的日志的时候,我们才知道原来代码有死锁。撇开代码检查工具,我们先讨论一下利用VisualVM监控,分析我们的多线程的运行情况。(注:实践本文内容的JDK的版本需要1.6.07以上) 什么是VisualVM VisualVM是JDK的一个集成的分析工具,自从JDK 6 Update 7以后已经作为Sun的JD...
强大性能分析工具JVisualVM
RockeyLu的专栏
10-24 7081
JVisualVM是由Sun提供的性能分析工具,如此强大的后盾怎能不强大?在Jdk6.0以后的版本是自带的,配置好环境变量然后在运行输入“JVisualVm”或直接到Jdk的安装目录的Bin目录下找到运行程序即可运行。如果是用Jdk1.5或以前版本的朋友就得要单独安装了。      我觉得其还有一个强大的地方就是不需要用代理启动(即如果要监视某个程序则需要用测试软件来运行程序方便其监视如Yo
JVisualVM对内存线程分析使用
weixin_34029949的博客
03-03 792
简介 JVisualVM是jdk自带的工具在jdk的安装目录的bin目录下,直接双击就能运行 点击运行后,能自动监视到 tomcat 、idea、eclipse等工具的进程 安装gc 线程插件 jvm内存模型一目了然 监测远程服务器 启动RMI服务 在需要被监控的服务器上面,通过jstatd来启动RMI服务 首...
使用jdk自带的线程分析工具-- jvisualvm
Diligently
12-28 1369
1.打开 jvisualvm 打开后如图: 显示正在启动的java进程,已经生成的快照信息 选择你要进行查看的进程,点击右键: 在这里的堆dump按钮生成堆的快照文件,可以进行堆快照文件的对比 对于具体活动的线程,正在占用执行事件的信息都有显示 进行cpu和内存的抽样 堆快照的内容 显示出占用的具体信息: ...
JVisualVM 线程状态(运行/休眠/等待/驻留/监视)解析
m0_73311735的博客
09-04 1803
java自带的工具JVirtualVM线程有以下几种状态:先说结论,各状态含义如下,后面有详细的demo测试验证:运行(runnable):正在运行线程。休眠(timed_waiting):休眠线程,例如调用Thread.sleep方法。等待(waiting):等待唤醒的线程,可通过调用Object.wait方法获得这种状态,。
JAVA-WEB系统性能调优.doc
09-15
1.3 分析性能瓶颈 分析收集到的数据,找出性能瓶颈所在,可能是数据库查询效率低、线程池配置不当、内存溢出等问题。针对这些瓶颈制定优化策略。 2. JVM性能调优 2.1 JVM内存组成及分配 2.1.1 JAVA内存组成介绍:...
分享Java性能调优的11个实用技巧
08-28
2. **使用分析器找到瓶颈** - 利用性能分析工具(如JProfiler或VisualVM)来识别代码的热点,这些工具能提供代码执行的详细信息,帮助你定位真正影响性能的部分。 3. **创建性能测试套件** - 为整个应用构建一组...
Java开发后端性能优化
最新发布
10-29
VisualVM是一款免费的工具,可以实时监控和诊断Java应用,分析CPU、内存和线程等资源使用情况。Arthas则提供了命令行界面和API,便于诊断和监控应用。JProfiler和YourKit是商业软件,虽然部分高级功能需要付费,但...
jvm调优,java 虚拟机优化
08-14
Java虚拟机(JVM)调优是提升Java应用程序性能的关键环节,主要涉及到内存管理、垃圾收集(GC)、线程调度等多个方面。JVM调优的目标是优化程序运行效率,减少不必要的系统资源消耗,特别是减少全GC(Full GC)的...
JavaVisualVM可视化多线程监控分析工具v1.3.8官方安装版
08-03
Java VisualVM是一个多线程的监控分析工具,VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。功能包括内存分析、快照功能、转储功能...
java内存分析线程分析----使用命令行或者可视化工具jvisualvm
m0_66468899的博客
08-30 204
通常有 CPU 监视和 CPU 快照两种方式来显示 CPU 性能分析结果。通常有内存监视和内存快照两种方式来显示内存性能分析结果。:内存性能分析的主要目的是通过统计内存使用情况。:CPU 性能分析的主要目的是。,或者更简单的情况就是统计应用。:线程性能分析主要用于在。
Java线程状态与JVisualVM线程面板解析与优化
java编程:架构设计与企业真实项目案例解析
09-17 697
本文旨在帮助读者建立起Java线程状态与JVisualVM线程面板状态的桥梁,从而更好地理解多线程编程的各种现象,以及如何有效地进行线程状态的监控与分析以及优化。 本文将深入探讨Java线程状态与JVisualVM线程面板状态的对应关系,帮助读者理解如何在不同状态下管理线程,以及如何利用JVisualVM进行线程状态的监控、分析、优化。
记一次CPU飙升的问题排查
梵天的佑翊的博客
03-31 8554
1.背景 通过公司监控工具监控,发现公司某个应用cpu利用率达到120%,也就是说这个应用自己单独占用一个cpu使用,为何占用这么高?让我们一起排查一下 2.开始排查 第一步获取cpu过高应用的进程信息 通过进程获取占用cpu过高的线程 通过jstack命令导出线程的堆栈信息 ...
记录一次Flink作业异常的排查过程
HeapDump性能社区的博客
06-17 1965
本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 最近2周开始接手apache flink全链路监控数据的作业,包括指标统计,业务规则匹配等逻辑,计算结果实时写入elasticsearch. 昨天遇到生产环境有作业无法正常重启的问题,我负责对这个问题进行排查跟进。 第一步,基础排查 首先拿到jobmanager和taskmanager的日志,我从taskmanager日志很快发现2个基础类型的报错,一个是npe,一个是索引找不到的异常 elasticsearch sinker在执行写入数.
I/O多路复用
qq_39713775的博客
08-07 226
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程. 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络,并与网络的其他应用程序进行通信。网络套接字是IP地址与端口的组合。套接字Socket=(IP地址:端口号) 套接字可以看成是两个网络应用程序进行通信时,各...
深入分析 Java I/O 的工作机制
bai大伯伯的博客
04-12 208
Java 的 I/O 类库的基本架构I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以 Java 在 I/O 上也一直在做持续的优化,如从 1.4 开始引入了 NIO,提升了 I/O 的性能。关于 NIO 我们将在后面详细介绍。...
java nio在windows下的坑。导致CPU飙升
无能力者只知抱怨
10-16 3684
堆栈信息: "I/O dispatcher 16" #137 prio=5 os_prio=0 tid=0x000000002139f000 nid=0x58d0 runnable [0x000000002e58f000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) at sun.nio.ch.WindowsSelectorImpl$Sub
java jvm调优工具
07-25
Java虚拟机(JVM)调优是提高Java应用程序性能的重要步骤之一。以下是一些常用的Java JVM调优工具: 1. VisualVM:这是Oracle官方提供的免费工具,可以监视和分析Java应用程序的性能。它提供了内存、线程、CPU和垃圾回收等方面的实时数据,并且可以生成堆转储文件以进行分析。 2. JConsole:这是一个基于JMX(Java Management Extensions)的监控和管理工具,可以在运行时监测和管理Java应用程序。它提供了对内存、线程、类加载器、垃圾回收等方面的监控和管理功能。 3. Java Mission Control(JMC):这是Oracle提供的一套高级监控和分析工具,可以对Java应用程序进行实时监控、分析和故障诊断。它包括了多个组件,如飞行记录器(Flight Recorder)和事件分析器(Event Analyzer)等。 4. Eclipse MAT(Memory Analyzer Tool):这是一个开源工具,用于分析Java堆转储文件。它可以帮助你找出内存泄漏和内存消耗过高的问题,并提供了各种分析报告和图表。 5. jmap:这是JDK自带的命令行工具,可以生成Java堆转储文件(heap dump),并提供了一些分析堆转储文件的命令。 这些工具可以帮助开发人员监控和分析Java应用程序的性能问题,优化JVM参数和调整应用程序的配置,以提高性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用 110162
  • 前端部署nginx刷新后404,解决Nginx刷新页面后404的问题 33492
  • 什么是北向接口和南向接口? 31715
  • 使用Docker搭建Jenkins到自动构建,自动部署(全过程,避免踩坑版)! 24062
  • Navicat导入Sql文件不成功 20781

分类专栏

  • Docker记录系列 10篇
  • 云原生记录系列 20篇
  • MQ记录系列 12篇
  • Spring记录系列 10篇
  • Golang记录系列 2篇
  • 面试题记录系列 1篇
  • 架构师记录系列
  • Java记录系列 17篇
  • Linux记录系列 15篇
  • 数据库记录系列 7篇

最新评论

  • @RequestBody接受参数报415(媒体类型不匹配)错误

    jm823454460: 加了4说的两个包,解决了,感谢!!!

  • 【MQ记录】kafka启动报错 could not be established. Broker may not be available.

    熊出没: config文件夹下面

  • 【MQ记录】kafka 连接Zookeeper 拒绝,超时timeOut!

    Marydon: https://www.cnblogs.com/Marydon20170307/p/17919893.html

  • 【MQ记录】kafka启动报错 could not be established. Broker may not be available.

    草根梦想家: 这个server文件在哪啊,都不说清楚

  • 记一次K8S网络问题排查过程,kube-proxy的ipvs模式转发失败,修改iptables模式

    熟悉开机关机重启: 我这也遇到了,停了防火墙ipvs就能telnet通,启动防火墙就只能ping不能telnet,不知道什么原因

大家在看

  • 二维码生成 590
  • MySQL 高级(进阶) SQL 语句
  • Redis源码学习:quicklist的设计与实现
  • Windows系统分区 320
  • 通信系统网络架构_1.局域网网络架构 24

最新文章

  • nginx-ingress配置路径拦截规则
  • Python pip instsll报错 Can‘t connect to HTTPS URL because the SSL module is not available.
  • K8S集群误删master节点,master节点恢复完美解决
2024年3篇
2023年3篇
2022年8篇
2021年34篇
2020年37篇
2019年22篇
2018年5篇
2016年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安逸的程序猿

意思不意思那是你的意思我没意思

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司光明阿里店铺托管布吉外贸网站设计龙华设计网站荷坳企业网站建设福永关键词按天收费南澳seo排名观澜百度竞价包年推广深圳网页设计大浪网站推广工具塘坑SEO按天扣费坪山seo南澳网站seo优化观澜关键词按天计费大芬模板制作民治网站设计惠州网站定制坂田网站优化排名大芬高端网站设计大芬品牌网站设计石岩设计公司网站惠州网站制作设计石岩网站搭建双龙网络推广大芬关键词按天收费东莞seo网站推广广州百搜词包爱联百姓网标王大运网站推广工具横岗百搜标王大浪建网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化