Arthas sc(查看JVM已加载的类信息 )
文章目录
- 二、命令列表
- 2.2 class/classloader相关命令
- 2.2.5 sc(查看JVM已加载的类信息 )
- 举例1:模糊搜索,xx包下所有的类
- 举例2:打印类的详细信息
- 举例3:打印出类的Field信息
- 本人其他相关文章链接
二、命令列表
2.2 class/classloader相关命令
2.2.5 sc(查看JVM已加载的类信息 )
提示:
“Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息;
class-pattern 支持全限定名,如 com.taobao.test.AAA,也支持 com/taobao/test/AAA 这样的格式,这样,我们从异常堆栈里面把类名拷贝过来的时候,不需要在手动把
/
替换为.
啦。sc 默认开启了子类匹配功能,也就是说所有当前类的子类也会被搜索出来,想要精确的匹配,请打开 options disable-sub-class true 开关,这个命令支持的参数有
[d]
、[E]
、[f]
和[x:]
。
参数说明:
参数名称 | 参数说明 |
---|---|
class-pattern | 类名表达式匹配 |
method-pattern | 方法名表达式匹配 |
[d] | 输出当前类的详细信息,包括这个类所加载的原始文件来源、类的声明、加载的 ClassLoader 等详细信息。 如果一个类被多个 ClassLoader 所加载,则会出现多次 |
[E] | 开启正则表达式匹配,默认为通配符匹配 |
[f] | 输出当前类的成员变量信息(需要配合参数-d 一起使用) |
[x:] | 指定输出静态变量时属性的遍历深度,默认为 0,即直接使用 toString 输出 |
[c:] | 指定 class 的 ClassLoader 的 hashcode |
[classLoaderClass:] | 指定执行表达式的 ClassLoader 的 class name |
[n:] | 具有详细信息的匹配类的最大数量(默认为 100) |
[cs <arg>] | 指定 class 的 ClassLoader#toString() 返回值。长格式[classLoaderStr <arg>] |
问题:getstatic命令和sc命令区别是啥?
答案:getstatic
命令用于获取特定类的静态字段的值,而 sc
命令可以一次性显示一个类的所有静态字段及其值。这使得 sc
更适合快速查看类的整体状态。
代码
/*** 定时任务缓存 ,用于状态记录*/
public class SMTaskCache
{private static SMTaskCache instance = new SMTaskCache();// 缓存public static final Vector<SmconfigDmTaskMain> taskCache = new Vector<>();// 读写锁private final static ReadWriteLock lock = new ReentrantReadWriteLock();public static SMTaskCache getInstance(){return instance;}
}
举例1:模糊搜索,xx包下所有的类
基础语法
:sc xx包.*
[arthas@18139]$ sc com.hero.lte.ems.sysmanager.cache.*
com.hero.lte.ems.sysmanager.cache.AmNeRefCache
com.hero.lte.ems.sysmanager.cache.SMTaskCache
com.hero.lte.ems.sysmanager.cache.SmQuartzTaskCache
com.hero.lte.ems.sysmanager.cache.SmTriggerTaskCache
Affect(row-cnt:4) cost in 46 ms.
[arthas@18139]$
举例2:打印类的详细信息
基础语法
:sc -d 全路径类名
[arthas@18139]$ sc -d com.hero.lte.ems.sysmanager.cache.SMTaskCacheclass-info com.hero.lte.ems.sysmanager.cache.SMTaskCache code-source /home/ems/ems_eam/app/ems-eam-sysmanager-server-1.0-SNAPSHOT.jar name com.hero.lte.ems.sysmanager.cache.SMTaskCache isInterface false isAnnotation false isEnum false isAnonymousClass false isArray false isLocalClass false isMemberClass false isPrimitive false isSynthetic false simple-name SMTaskCache modifier public annotation interfaces super-class +-java.lang.Object class-loader +-sun.misc.Launcher$AppClassLoader@18b4aac2 +-sun.misc.Launcher$ExtClassLoader@232204a1 classLoaderHash 18b4aac2 Affect(row-cnt:1) cost in 33 ms.
[arthas@18139]$
举例3:打印出类的Field信息
基础语法
:sc -df 全路径类名
[arthas@18139]$ sc -df com.hero.lte.ems.sysmanager.cache.SMTaskCacheclass-info com.hero.lte.ems.sysmanager.cache.SMTaskCache code-source /home/ems/ems_eam/app/ems-eam-sysmanager-server-1.0-SNAPSHOT.jar name com.hero.lte.ems.sysmanager.cache.SMTaskCache isInterface false isAnnotation false isEnum false isAnonymousClass false isArray false isLocalClass false isMemberClass false isPrimitive false isSynthetic false simple-name SMTaskCache modifier public annotation interfaces super-class +-java.lang.Object class-loader +-sun.misc.Launcher$AppClassLoader@18b4aac2 +-sun.misc.Launcher$ExtClassLoader@232204a1 classLoaderHash 18b4aac2 fields name instance type com.hero.lte.ems.sysmanager.cache.SMTaskCache modifier private,static value com.hero.lte.ems.sysmanager.cache.SMTaskCache@6ac3ae9f name taskCache type java.util.Vector modifier final,public,static value [SmconfigDmTaskMain [sysTaskId=12017001, sysTaskType=null, neTypeId=null, moduleId=5, sysTaskName=Operation Log backup delete task, sysTaskState=2, sysTaskNextTime=Fri Sep 13 02:50:00 CST 2024, sysTaskL astTime=null, sysTaskLastResult=null, sysTaskOsType=2, sysTaskTimeout=500, sysTaskWhetherDel=0, sysTaskCreateTime=null, sysTaskCreateUser=null, sysTaskEditPeople=null, sysTaskEditTime=null, sysTaskEfitR emark=Operation Log backup delete task, sysTaskNextOs=Succeeded, taskSwitch=1, sysTaskExeMod=0, sysTaskErrorMod=0, sysTaskWhetherInfo=null, systemId=null, sysTaskBegTime=Fri Aug 30 00:00:00 CST 2024, sy sTaskEndTime=null]]name lock type java.util.concurrent.locks.ReadWriteLock modifier final,private,static value java.util.concurrent.locks.ReentrantReadWriteLock@52dcc92f[Write locks = 0, Read locks = 0]
Affect(row-cnt:1) cost in 24 ms.
[arthas@18139]$
本人其他相关文章链接
1.Arthas 全攻略:让调试变得简单
2.Arthas dashboard(当前系统的实时数据面板)
3.Arthas thread(查看当前JVM的线程堆栈信息)
4.Arthas jvm(查看当前JVM的信息)
5.Arthas sysprop(查看和修改JVM的系统属性)
6.Arthas sysenv(查看JVM的环境变量)
7.Arthas vmoption(查看和修改 JVM里诊断相关的option)
8.Arthas getstatic(查看类的静态属性 )
9.Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)
10.Arthas logger(查看 logger 信息,更新 logger level)
11.Arthas mbean(查看 Mbean 的信息)
12.Arthas memory(查看 JVM 内存信息)
13.Arthas ognl(执行ognl表达式)
14.Arthas perfcounter(查看当前 JVM 的 Perf Counter 信息)
15.Arthas vmtool(从 jvm 里查询对象,执行 forceGc)
16.Arthas jad(字节码文件反编译成源代码 )
17.Arthas mc(Memory Compiler/内存编译器 )
18.Arthas redefine(加载外部的.class文件,redefine到JVM里 )
19.Arthas classloader (查看 classloader 的继承树,urls,类加载信息)
20.Arthas sc(查看JVM已加载的类信息 )
21.Arthas sm(查看已加载类的方法信息 )
22.Arthas monitor(方法执行监控)
23.Arthas stack (输出当前方法被调用的调用路径)
24.Arthas trace (方法内部调用路径,并输出方法路径上的每个节点上耗时)
25.Arthas tt(方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测)
26.Arthas watch (方法执行数据观测)
27.Arthas profiler(使用async-profiler对应用采样,生成火焰图)
相关文章:
Arthas sc(查看JVM已加载的类信息 )
文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc(查看JVM已加载的类信息 )举例1:模糊搜索,xx包下所有的类举例2:打印类的详细信息举例3:打印出类的Field信息 本人其他相关文章链接 二、命令列…...
OCR 行驶证识别 离线识别
目录 正页识别 副页识别 全部识别 OCR 行驶证识别 离线识别 正页识别 副页识别 全部识别...
PHP泛目录生成源码,可生成长尾关键词页面,带使用方法视频教程
介绍: 真正的好东西,搞网站优化seo从业必备。可以快速提升网站权重,带来的流量哗哗的 PHP泛目录生成源码 可生成新闻页面和关键词页面 带使用方法视频教程 泛目录可以用来提升网站收录和排名 合理运用目录可以达到快速出词和出权重的效果…...
LeetCode题练习与总结:丑数--263
一、题目描述 丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:n 6 输出:true 解释࿱…...
初识C语言(五)
前言 本文章就代表C语言介绍以及了解正式完成,后续进行具体分析和详细解析学习。知识根深蒂固才可以应付后来的学习,地基要打好,后续才会轻松。 十四、结构体 结构体是C语言中最最重要的知识点,使得C语言有能力描述复杂的类型。 …...
Linux:深入理解冯诺依曼结构与操作系统
目录 1. 冯诺依曼体系结构 1.1 结构分析 1.2 存储结构分布图 2. 操作系统 2.1 概念 2.2 如何管理 2.3 什么是系统调用和库函数 1. 冯诺依曼体系结构 1.1 结构分析 不管是何种计算机,如个人笔记本电脑,服务器,都是遵循冯诺依曼结构。…...
面试中顺序表常考的十大题目解析
在数据结构与算法的面试中,顺序表是一个常见的考点。它作为一种基础的数据结构,涵盖了多种操作和概念,以下将详细介绍面试中关于顺序表常考的十大题目。 💝💝💝如果你对顺序表的概念与理解还存在疑惑&#…...
测试管理新增视图与高级搜索功能,测试计划支持一键生成缺陷详情,MeterSphere开源持续测试工具v3.3版本发布
2024年9月29日,MeterSphere开源持续测试工具正式发布v3.3版本。 在这一版本中,接口测试方面,接口导入功能支持导入Postman、JMX、HAR和MeterSphere格式的文件,接口场景的自定义请求步骤支持cURL快捷导入;测试管理方面…...
TypeScript 算法手册 【归并排序】
文章目录 1. 归并排序简介1.1 归并排序定义1.2 归并排序特点 2. 归并排序步骤过程拆解2.1 分割数组2.2 递归排序2.3 合并有序数组 3. 归并排序的优化3.1 原地归并排序3.2 混合插入排序案例代码和动态图 4. 归并排序的优点5. 归并排序的缺点总结 【 已更新完 TypeScript 设计模式…...
生信名词|MOA|基因敲低与基因敲除|DMSO|MODZ|生信基础
生信名词|MOA|基因敲低与基因敲除|DMSO|MODZ|生信基础 MOA(Mechanisms Of Action,作用机理) 过去,在药物投入到临床使用之前,它的生物学机理往往未被研究透彻。如今,随着技术的发展,一种新药物…...
基础岛第3关:浦语提示词工程实践
模型部署 使用下面脚本测试模型 from huggingface_hub import login, snapshot_download import osos.environ[HF_ENDPOINT] https://hf-mirror.comlogin(token“your_access_token")models ["internlm/internlm2-chat-1_8b"]for model in models:try:snapsh…...
vscode中配置python虚拟环境
python虚拟环境作用 Python虚拟环境允许你为每个独立的项目创建一个隔离的环境,这样每个项目都可以拥有自己的一套Python安装包和依赖,不会互相影响。实际使用中,可以在vscode或pycharm中使用虚拟环境。 1.创建虚拟环境的方法: …...
chatGPT对我学术写作的三种帮助
chatGPT对我学术写作的三种帮助 概述提高学术写作水平大模型选择概述上下文以提供精确的指令 提升同行评审优化编辑反馈 概述 从生成式人工智能中获得的价值并非来自于技术本身盲目地输出文本,而是来自于与工具的互动,并利用自身的专业知识来完善它所生…...
【PostgreSQL 】入门篇——支持的各种数据类型介绍,包括整数、浮点数、字符串、日期、JSON、数组等
1. 整数类型 1.1 SMALLINT 描述:用于存储小范围的整数值。大小:2 字节范围:-32,768 到 32,767使用场景:适合存储小型计数器、状态码等。示例: CREATE TABLE status_codes (id SMALLINT PRIMARY KEY,description TEX…...
野火STM32F103VET6指南者开发板入门笔记:【1】点亮RGB
硬件介绍 提示:本文是基于野火STM32F103指南者开发板所写例程,其他开发板请自行移植到自己的工程项目当中即可。 RGB-LEDPin引脚:低电平-点亮,高电平-熄灭REDPB5GREENPB0BLUEPB1 文章目录 硬件介绍软件介绍:结构体方式…...
数据工程师岗位常见面试问题-3(附回答)
数据工程师已成为科技行业最重要的角色之一,是组织构建数据基础设施的骨干。随着企业越来越依赖数据驱动的决策,对成熟数据工程师的需求会不断上升。如果您正在准备数据工程师面试,那么应该掌握常见的数据工程师面试问题:包括工作…...
强大的JVM监控工具
介绍 在生产环境中,经常会遇到各种各样奇葩的性能问题,所以掌握最基本的JVM命令行监控工具还是很有必要的 名称主要作用jps查看正在运行的Java进程jstack打印线程快照jmap导出堆内存映像文件jstat查看jvm统计信息jinfo实时查看和修改jvm配置参数jhat用…...
python 实现点的多项式算法
点的多项式算法介绍 点的多项式算法通常指的是通过一组点(即数据点,通常包括自变量和因变量的值)来拟合一个多项式函数的方法。这种方法在数值分析、统计学、机器学习等领域中非常常见。下面是一些常见的多项式拟合算法: 1. 最小…...
Pikachu-暴力破解-验证码绕过(on client)
访问页面, 从burpsuite 上看到返回的源代码; 验证码生成时通过 createCode 方法生成,在前端页面生成; 同时也是在前端做的校验; 直接验证;F12 -- 网络,随便输入个账号、密码、验证码࿰…...
【Spring】Bean 的生命周期:从实例化到销毁
实例化阶段: Bean的实例化是通过反射创建的。Spring根据Component、Bean或者XML中的<bean>元素配置,来确定要创建的Bean。 属性赋值阶段: 实例化完成后,Spring会进行依赖注入。包括将属性值注入到Bean的字段中,…...
Ubuntu 安装RUST
官方给的是这样如下脚本 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh 太慢了 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh -x 执行这个脚本后会给出对应的下载链接 如下图 我直接给出来 大多数应该都是这个 https://static.rust-…...
Android Compose的基本使用
前言: Compose这个东西呢,好处我没发现,坏处就是学习成本和低版本兼容. 不过,看在官方力推的份儿上,有空就学一下吧. 当初的kotlin,很多人说鸡肋(包括我)!现在不也咔咔用纯kotlin做项目吗?哈哈哈哈. 未来的事情,谁说得清呢? 首先创建一个专用的Compose项目 对没错!看到E…...
计算机网络:计算机网络体系结构 —— 专用术语总结
文章目录 专用术语实体协议服务服务访问点 SAP 服务原语 SP 协议数据单元 PDU服务数据单元 SDU 专用术语 实体 实体是指任何可以发送或接收信息的硬件或软件进程 对等实体是指通信双方处于相同层次中的实体,如通信双方应用层的浏览器进程和 Web 服务器进程。 协…...
Rust的前端Tauri编程-基于JS框架的初步探索
上次的项目做完后,有一项遗憾,没有返回结果,而结果是一个html表格,我想用html直接在窗口显示,这时发现R里面包括slint没有很直接的方法,直接弹出浏览器有点太简单没有挑战。这是就被推送了他的竞争对手&…...
【Flume Kafaka实战】Using Kafka with Flume
一 目标 在Cloudera Manager中创建两个Flume的Agent,Agent1从local file中获取内容,写入到kafka的队列中。Agent2以Agent1的sink作为source,将数据从kafka中读取出来,写入到HDFS中。 二 实战 2.1 Kafka Sink 第一步࿰…...
5G NR物理信号
文章目录 NR 物理信号与LTE的区别上行参考信号DMRS (UL)SRSPT-RS(UL) 下行参考信号DMRS(DL)PT-RS(DL)CSI-RSPSSSSS NR 物理信号与LTE的区别 用SSS、CSI-RS和DMRS 取代了CRS信号。下行业务信道采用TM1波束赋形传输模式。基于SSB 或者CSI-RS进行RSRP和SINR测量。基于DMRS 进行共…...
Pikachu-Cross-Site Scripting-存储型xss
存储型xss ,随便输入点内容,都能保存下来;刷新后也不会丢失;输入特殊字符,也能原样返回; 查看代码,也可以看到输出结果直接原路返回,不做处理 构造payload <script>alert(1)…...
媲美GPT-4o mini的小模型,Meta Llama 3.2模型全面解读!
大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…...
【leetcode】 45.跳跃游戏 ||
如果我们「贪心」地进行正向查找,每次找到可到达的最远位置,就可以在线性时间内得到最少的跳跃次数。 例如,对于数组 [2,3,1,2,4,2,3],初始位置是下标 0,从下标 0 出发,最远可到达下标 2。下标 0 可到达的…...
coco(json)、yolo(txt)、voc(xml)标注格式的相互转换
一般都是用labeleme进行标注 标注格式都是json 然后根据不同的格式进行数据标注转换: 1.逐个json转xml: 当我们在使用数据集训练计算机视觉模型时,常常会遇到有的数据集只给了单个的json annotation文件,而模型所需要的annotation是基于每…...
wordpress怎么修改菜单栏关键词/杭州百度seo代理
一、实验目的设计并实现Unix的“time”命令。“mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。二、实验内容在Windows下实现: 使用CreateProcess()来创建进程使用WaitForSingleObject()在“mytime”…...
供应链系统软件/浙江seo外包
本文知识点: NIO 工作原理 NIO 的三大概念 Channel Selector Buffer NIO 相比于BIO的优点 Java NIO 使用方法 前言 上一篇讲了Java BIO的使用和原理以及BIO模型带来的性能问题,BIO模型中每新增加一个连接就需要一个线程处理;可以使用线程池进…...
论坛wordpress还是/优化网站制作方法大全
你可以在你的QWidget的子类中重写QWidget的resizeEvent()函数。 你需要在你的类中声明一个resizeEvent()函数,并在函数内实现你想要在尺寸改变时执行的操作。 例如: class MyWidget: public QWidget {Q_OBJECTpublic:MyWidget(QWidget *parent 0);~MyWi…...
哪家公司搭建网站/seo优化服务价格
1. vue.js的两个核心是什么 数据驱动(数据改变会驱动页面更新)和组件化 2. Vue中一个元素如何绑定多个事件 使用click“handle();handle1()”,分号隔开即可 3. Vue路由有几种实现方式,它们的异同点是什么 hash: 使用变更hash不会刷…...
水果网站模板/seo排名赚app官网
刚开始接触MapRecude还不是太理解只是知道了些大概的流程。暂时先记下当作笔记。 下面是依据java实现wordcount的代码: WordCountMapper package com.atguigu.mapreduce.wordcount2;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWr…...
卖鱼的亲戚要我帮忙做网站/海外广告联盟平台推广
本文地址 原文地址 分享提纲: 1. 下载JDK1.7 2. 配置java_home 3 .安装tomcat 4 .安装eclipse或者myeclipse 5. mysql安装 破解版下载请参考Myeclipse 10 for mac 安装过程及myeclipse 10 for mac 破解版下载 刚整的pro所以研究半天把开发环境搭建好 1 首先jdk1.7 …...