Java-性能优化-工具篇-jvisualvm

本文介绍如何使用VisualVM工具进行Java性能优化,重点讲解了远程连接服务器、监控线程及内存的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先留着,需要时试着去用用》。。

Java性能优化是老生常谈的问题,不光是面试中,还是实际工作中,都会遇到此问题,这里我们不谈具体细节,只介绍一下Java通过工具来检查程序中存在的性能问题,这里,我以jvisualvm为例。

       VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的),具体介绍这里就不多说了,百度百科里有。我这边只介绍一下该工具如何使用。
       由于我的服务器是linux的,没有图形图界面,所以直接在服务器上运行jvisualvm,是无法弹出界面的。所以我会在本地运行c:\jvisualvm.exe,然后再通过远程连接, 连接到服务器上,具体步骤在网上有很多,我这边主讲下需要注意的地方:
  1. 远程连接时,需求注意一下,线上运行的服务器是什么,(我这里以jetty为例,网上很多都是tomcat),然后打开jetty的远程服务,具体如下:
    • 在jetty etc目录下,找到jetty-jmx.xml文件,然后修改文件里的端口,将默认的1099端口,全部换成没有被占用的端口,比如39527,保存退出
    • 在jetty bin目录下,找到jetty.sh文件,加入启动参数,如图:
    • Java-性能优化-工具篇-jvisualvm

  2. 远程连接JMX后,主要关注二个Tab页
  • 监视:监视这块有四个区域具体就不细说了,应该都看得明白,如图:Java-性能优化-工具篇-jvisualvm

    当出问题的时候,可以根据这些线性图,来初步判断
  • 线程:线程这一块是最重要的,关于这块的概念,这里就不多说了,主要注意一个点,看用户线程,jetty服务器运行时,所创建的线程名以qtp开头的如图:Java-性能优化-工具篇-jvisualvm

    其他的服务器,在创建线程时,名称会不一样,这个需要注意一下。所以我们只要找相关的这个线程就可以了这个说明,这个线程是属于等待状态,非常空,毫无压力,如果一直是绿色的,那就说明,这个线程很忙,cpu也会很高,那就要查看相关详细信息,来确认是否有问题,这里会显示出是哪个类在运行,可以很方便地定位。如图:Java-性能优化-工具篇-jvisualvm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值