jclasslib 插件安装及使用

Posted m0_69526738

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jclasslib 插件安装及使用相关的知识,希望对你有一定的参考价值。

3.安装完重启,然后点击视图:

4.打开 jclasslib,即可看到相关的汇编指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R38uH1gn-1651975163609)(https 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 😕/img-blog.csdnimg.cn/8b208c59b6c94b19aa01d8fe66cde73a.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiA5py16Iqx6Iqx,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)]

2.jclasslib 结构分析:

上图方法包含了此Java文件中包含的所有方法

而展开后,< init >代表构造方法

main方法

描述符:描述方法的参数类型以及返回值类型

如上述例子:<( [ Ljava / lang / String;)V>,说明参数类型是Ljava / lang / String;返回值类型是V,即为 void 类型

访问标志为:public static

选中Code

展开main方法,选中 Code,右边会出现字节码,异常表及杂项

字节码:即Java方法对应的字节码指令

异常表(Exception table):方法抛出的异常

杂项(Misc):存放一些描述信息

继续展开Code

①LineNumberTable,即行号表


_Q1NETiBA5LiA5py16Iqx6Iqx,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

JVM分析工具知识概括

JClassLib 插件

简介:

  • JClassLib是一款java 字节码分析工具
  • 打开idea 中的settings > plugins 搜索 jclasslib 插件 进行安装 重启生效
  • 重启后点击view > 选择show bytecode with jclasslib,可以看到字节码视图了。
    在这里插入图片描述

jvisualvm

简介:

  • JDK中还藏着一个宝贝,它的名字叫做VisualVM,自从 JDK 6 Update 7 以后已经作为 Oracle JDK
    的一部分,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。
  • 该工具位于 JDK 根目录的 bin文件夹下,无需安装,正常安装完jdk后,至jdk的bin目录下直接运行jvisualvm.exe即可。
  • jvisualvm可以监控所有的java进程,本地机器的程序直接可以监听到,远程机器的程序需要加上JVM参数。
  • 链接:必须要会的JVM性能监测工具(JVisualVM)

使用:

  • 添加远程主机
  • 打开JMX连接
  • 点击进行监测数据

Jprofiler

简介:

  • JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开发部署工具)。
  • 其特点:
    ①使用方便
    ②界面操作友好
    ③对被分析的应用影响小
    ④CPU,Thread,Memory分析功能尤其强大
    ⑤支持对jdbc,noSql, jsp, servlet, socket等进行分析
    ⑥支持多种模式(离线,在线)的分析
    ⑦跨平台
    在这里插入图片描述

JVM优化实操

tomcat启动项目时一直卡住无反应的解决方案:

  • 系统没有打开telnet
    ①Telnet:搭建或配置网络环境时,经常会使用ping命令检查网络是否可达。有些时候Ping命令也不好使,比如因防火墙禁止或访问策略限制等。则可使用telnet测试映射端口或远程访问主机。
    ②Telnet协议是TCP/IP协议族的其中之一,是Internet远程登录服务的标准协议和主要方式,常用于网页服务器的远程控制,可供使用者在本地主机运行远程主机上的工作。
    ③启用telnet操作过程:点击"开始"→"控制器面板"→" 查看方式:类型"则点击"程序"(“查看方式:大图标"则点击"程序和功能”)→ "启动或关闭windows功能"→ 在"Windows功能"界面勾选Telnet服务器
  • 加入log4j日志,debug级别
  • 启动tomcat , 控制台停在某个日志信息不动了
    ①既然是卡住了,那就是在访问某个东西的时候一直没有响应,而tomcat 却不放弃,一直重试。
    ②可能是数据库、缓存以及消息中间件等。
    ③于是想到用 JVisualVm 查看线程情况。
    ④例如:数据库请求看到Druid 有多个线程,状态为休眠和驻留。
  • 消息队列 ActiveMQ 造成 Tomcat 启动卡住。
  • 链接:tomcat启动项目时一直卡住无反应的解决方案述

java 内存不足解决方案:

  • 原因:服务器上物理内存太小,大部分都是应为程序太多,内存吃紧,而给jvm分配的内存太大(java程序启动需要的内存,linux不能给),最好调整java程序jvm内存。
  • 解决方案:
    ①linux上利用top命令查看所有进程,看看那些进程占用的内存太大了,选择性的kill,释放内存,但这个需要了解清楚,安歇进程是不需要的。
    ②调整tomca中对jvm内存的配置,因为jvm主要内存就是指jvm堆内存。

线上问题如何排查?

总结

总结:

  • 性能分析:
    ①JDK命令行
    ②Eclipse :Memory Analyzer Tool
    ③Jconsole
    ④visualVM
    ⑤Jprofiler
    ⑥Java Flight Recorder
    ⑦Gcviewer
    ⑧GC Easy
  • 反编译:
    ①JDK命令行
    ②JClassLib
  • 诊断:Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱。

以上是关于jclasslib 插件安装及使用的主要内容,如果未能解决你的问题,请参考以下文章

Java字节码Idea中查看Java字节码的插件jclasslib Bytecode viewer

JVM分析工具知识概括

查看字节码的插件jclasslib设置成英文

IDEA中jclasslib插件修改本地化语言为英文的方法

IDEA中jclasslib插件修改本地化语言为英文的方法

IDEA中jclasslib插件修改本地化语言为英文的方法