微信公众号【Java技术江湖】 一位阿里 Java 工程师的技术小站。作者黄小斜,专注 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!(关注公众号后回复”Java“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式、微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南、Java程序员面试指南等干货资源)
目前创新互联已为成百上千家的企业提供了网站建设、域名、虚拟主机、网站改版维护、企业网站设计、即墨网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
cdn.com/9eedaaa588bef997bef63a7160fa349134bdb78c.jpeg">
一、VisualVM是什么?
VisualVM是一款免费的JAVA虚拟机图形化监控分析工具。
1. 拥有 图形化的监控界面 。2. 提供本地、远程的JVM 监控 分析功能。
3. 是一款免费的JAVA工具。
4. VisualVM拥有丰富的插件支持。
二、如何获取VisualVM?
VisualVM官方网站: http://visualvm.java.net/
VisualVM各版本下载页面: http://visualvm.java.net/releases.html
下载 VisualVM时也应该注意,不同的JDK版本对应不同版本的VisualVM,具体根据安装的JDK版本来下载第一的VisualVM。
三、获取那个版本?
下载版本参考: Java虚拟机性能管理神器 - VisualVM(4) - JDK版本与VisualVM版本对应关系
备注:下列表中显示1.3.6版本只适合JDK7和JDK8,可是我用1.3.6版还是可以监控JDK1.6_45的版本。
四、VisualVM能做什么?
1. 显示JAVA应用程序配置和运行时环境。
3. 分析解决JAVA应用程序线程锁
发生线程锁的原因有很多,我所遇到比较多的情况是 多线程同时访问同一资源,且此资源使用 synchronized关键字,导致一个线程要等另外一个线程使用完资源后才能运行。例如再没有连接池的情况下,同时访问数据库接口。这种情况会导致性能的极具下降,解决的方案是增加连接池,或者修改访问方式。或者将资源粒度细化,类似ConCurrentHashMap中的处理方式,将资源分为多个更小粒度的资源,在更小粒度资源上来处理锁,就可以解决资源竞争激烈的问题。]
分享标题:深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
文章来源:http://lswzjz.com/article/pgepgs.html