当前位置: 首页 > article >正文

常见 JVM 工具介绍

1. jps(Java Virtual Machine Process Status Tool)

  • 功能:列出当前用户的所有 Java 进程及其 PID。

  • 常用场景:快速定位目标 Java 应用的进程 ID。

  • 常用命令

    bash复制

    jps -l  # 显示主类全名
    jps -v  # 显示 JVM 启动参数

2. jstat(JVM Statistics Monitoring Tool)

  • 功能:实时监控 JVM 内存、GC、类加载等状态。

  • 常用场景:监控垃圾回收(GC)性能,分析内存使用情况。

  • 常用命令

    bash复制

    jstat -gcutil <pid> 1000 10  # 每 1 秒采样 GC 状态,共 10 次
    jstat -class <pid>  # 类加载统计

3. jmap(Memory Map Tool)

  • 功能:生成堆转储文件(Heap Dump)或查看堆内存对象分布。

  • 常用场景:分析内存泄漏、排查内存溢出问题。

  • 常用命令

    bash复制

    jmap -heap <pid>  # 查看堆内存使用详情
    jmap -histo:live <pid>  # 统计存活对象
    jmap -dump:format=b,file=/path/to/dump.hprof <pid>  # 生成堆转储文件

4. jstack(Stack Trace Tool)

  • 功能:生成线程快照,用于分析线程死锁或高 CPU 问题。

  • 常用场景:排查线程死锁、分析线程状态。

  • 常用命令

    bash复制

    jstack <pid> > thread_dump.txt  # 输出线程快照到文件

5. jcmd(JVM Command Tool)

  • 功能:多功能工具,支持 GC、类加载、线程等诊断。

  • 常用场景:动态调整 JVM 参数、生成堆转储文件、打印线程信息等。

  • 常用命令

    bash复制

    jcmd <pid> VM.flags  # 查看 JVM 参数
    jcmd <pid> GC.heap_info  # 查看堆内存信息
    jcmd <pid> Thread.print  # 打印线程快照

6. jinfo(Java Information Tool)

  • 功能:查看和动态修改 JVM 的运行时参数。

  • 常用场景:查看 JVM 启动参数、动态调整参数。

  • 常用命令

    bash复制

    jinfo -flags <pid>  # 查看 JVM 参数
    jinfo -flag +HeapDumpBeforeFullGC <pid>  # 动态启用 HeapDumpBeforeFullGC

7. jhat(Heap Analysis Tool)

  • 功能:分析 jmap 生成的堆转储文件(Heap Dump)。

  • 常用场景:分析内存泄漏、排查对象占用情况。

  • 常用命令

    bash复制

    jhat /path/to/dump.hprof  # 启动 HTTP 服务器,通过浏览器访问分析结果

8. jconsole(Java Monitoring and Management Console)

  • 功能:图形化工具,用于监控 JVM 的内存、线程、类加载等信息。

  • 常用场景:开发环境中的实时监控和调优。

  • 使用方法:直接启动 jconsole,选择目标进程进行监控。

9. jmc(Java Mission Control)

  • 功能:高级的图形化监控工具,支持飞行记录器(Flight Recorder)功能。

  • 常用场景:生产环境中的性能监控和问题诊断。

  • 使用方法:启动 jmc,连接到目标 JVM,进行实时监控或分析飞行记录。

总结

这些工具各有用途,可以根据实际需求选择合适的工具:

  • 开发环境:优先使用图形化工具(如 jconsole、jmc)。

  • 生产环境:推荐使用低开销工具(如 jcmd、jstat)。

  • 深度分析:结合日志分析工具(如 jmap + jhat、MAT)进行优化。

相关文章:

常见 JVM 工具介绍

1. jps&#xff08;Java Virtual Machine Process Status Tool&#xff09; 功能&#xff1a;列出当前用户的所有 Java 进程及其 PID。 常用场景&#xff1a;快速定位目标 Java 应用的进程 ID。 常用命令&#xff1a; bash复制 jps -l # 显示主类全名 jps -v # 显示 JVM 启…...

【含文档+PPT+源码】Python爬虫人口老龄化大数据分析平台的设计与实现

项目介绍 本课程演示的是一款Python爬虫人口老龄化大数据分析平台的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…...

生成对抗网络(GAN)原理与应用

目录 一、引言 二、GAN的基本原理 &#xff08;一&#xff09;生成器&#xff08;Generator&#xff09;的工作机制 &#xff08;二&#xff09;判别器&#xff08;Discriminator&#xff09;的工作机制 &#xff08;三&#xff09;对抗训练的过程 三、GAN在AIGC生图中的应…...

Linux安装升级docker

Linux 安装升级docker Linux 安装升级docker背景升级停止docker服务备份原docker数据目录移除旧版本docker安装docker ce恢复数据目录启动docker参考 安装找到docker官网找到docker文档删除旧版本docker配置docker yum源参考官网继续安装docker设置开机自启配置加速测试 Linux …...

clickhouse源码分析

《ClickHouse源码分析》 当我们谈论数据库时&#xff0c;ClickHouse是一个不容忽视的名字。它是一个用于联机分析处理&#xff08;OLAP&#xff09;的列式数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;以其快速的数据查询能力而闻名。对于想要深入了解这个高效工具…...

IDEA 基础配置: maven配置 | 服务窗口配置

文章目录 IDEA版本与MAVEN版本对应关系maven配置镜像源插件idea打开服务工具窗口IDEA中的一些常见问题及其解决方案IDEA版本与MAVEN版本对应关系 查找发布时间在IDEA版本之前的dea2021可以使用maven3.8以及以前的版本 比如我是idea2021.2.2 ,需要将 maven 退到 apache-maven-3.…...

【redis】type命令和定时器的两种实现方式(优先级队列、时间轮)

type——返回 key 对应的数据类型 此处 Redis 所有的 key 都是 string&#xff0c;但是 key 对应的 value 可能会存在多种类型 none —— key 不存在string ——字符串list ——列表set ——集合zset ——有序集合hash ——哈希表stream ——Redis 作为消息队列的时候&#x…...

高并发下订单库存防止超卖策略

文章目录 什么是超卖问题&#xff1f;推荐策略&#xff1a;Redis原子操作(Redis incr)乐观锁lua脚本利用Redis increment 的原子操作&#xff0c;保证库存数安全update使用乐观锁LUA脚本保持库存原子性 什么是超卖问题&#xff1f; 在并发的场景下&#xff0c;比如商城售卖商品…...

task01

1&#xff1a;大模型能够专业的回答各种问题&#xff0c;并且擅长文本处理&#xff0c;代码编写&#xff0c;可以减少一部分人类的工作。 本节学习了大模型提示词的三要素&#xff0c;角色&#xff0c;背景&#xff0c;输出样式&#xff0c;在kimi上我复现了教材的任务&#xf…...

【Kotlin】Kotlin基础笔记

一、数据类型 1.1 变量声明与类型推导 变量声明 使用 val 声明不可变变量&#xff08;相当于常量&#xff09;&#xff1b;使用 var 声明可变变量。 val a 10 // 类型自动推断为 Int&#xff0c;不可变 var b: Double 5.0 // 显示声明为 Double&#xff0c;可变变量…...

DeepSeek教我写词典爬虫获取单词的音标和拼写

Python在爬虫领域展现出了卓越的功能性&#xff0c;不仅能够高效地抓取目标数据&#xff0c;还能便捷地将数据存储至本地。在众多Python爬虫应用中&#xff0c;词典数据的爬取尤为常见。接下来&#xff0c;我们将以dict.cn为例&#xff0c;详细演示如何编写一个用于爬取词典数据…...

祛魅 Manus ,从 0 到 1 开源实现

背景介绍 Manus 是最近一个现象级的大模型 Agent 工具&#xff0c;自从发布以来&#xff0c;被传出各种神乎其神的故事&#xff0c;自媒体又开始炒作人类大量失业的鬼故事&#xff0c;Manus 体验码也被炒作为 10w 的高价。 之后又出现反转&#xff0c;被爆出实际体验效果不佳…...

C++入门——输入输出、缺省参数

C入门——输入输出、缺省参数 一、C标准库——命名空间 std C标准库std是一个命名空间&#xff0c;全称为"standard"&#xff0c;其中包括标准模板库&#xff08;STL&#xff09;&#xff0c;输入输出系统&#xff0c;文件系统库&#xff0c;智能指针与内存管理&am…...

Spring Boot应用开发:从零到生产级实战指南

Spring Boot应用开发&#xff1a;从零到生产级实战指南 Spring Boot应用开发&#xff1a;从零到生产级实战指南一、Spring Boot的核心价值二、快速构建第一个Spring Boot应用2.1 使用Spring Initializr初始化项目2.2 项目结构解析2.3 编写第一个REST接口 三、Spring Boot的核心…...

【2025前端高频面试题——系列一之MVC和MVVM】

前端高频面试题——系列一之MVC和MVVM 前言一、MVC的基本逻辑二、MVVM的基本逻辑总结 提示&#xff1a;片尾总结了要点&#xff0c;硬背的话直接跳到最后 前言 相信持续关注我文章的小伙伴知道我之前就MVC和MVVM做过较为详细的讲解&#xff0c;但是我发现&#xff0c;他依旧是…...

基于遗传算法的IEEE33节点配电网重构程序

一、配电网重构原理 配电网重构&#xff08;Distribution Network Reconfiguration, DNR&#xff09;是一项优化操作&#xff0c;旨在通过改变配电网中的开关状态&#xff0c;优化电力系统的运行状态&#xff0c;以达到降低网损、均衡负载、改善电压质量等目标。配电网重构的核…...

HTTP协议与Web开发

&#x1f310; HTTP协议与Web开发完全指南&#xff1a;从原理到实战 一、HTTP协议是什么&#xff1f; HTTP&#xff08;超文本传输协议&#xff09; 是互联网上应用最广泛的网络协议&#xff0c;作为Web开发的基石&#xff0c;它具有以下核心特性&#xff1a; 无状态协议&am…...

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路20250309

容器编排革命&#xff1a;从 Docker Run 到 Docker Compose 的进化之路 一、容器化部署的范式转变 在 Docker 生态系统的演进中&#xff0c;容器编排正从“手动操作”走向“自动化管理”。根据 Docker 官方 2023 年开发者调查报告&#xff0c;78% 的开发者已采用 Docker Compo…...

【高并发内存池】释放内存 + 申请和释放总结

高并发内存池 1. 释放内存1.1 thread cache1.2 central cache1.3 page cache 2. 申请和释放剩余补充 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x…...

自然语言处理:最大期望值算法

介绍 大家好&#xff0c;博主又来给大家分享知识了&#xff0c;今天给大家分享的内容是自然语言处理中的最大期望值算法。那么什么是最大期望值算法呢&#xff1f; 最大期望值算法&#xff0c;英文简称为EM算法&#xff0c;它的核心思想非常巧妙。它把求解模型参数的过程分成…...

Python绘制数据分析中经典的图形--列线图

Python绘制数据分析中经典的图形–列线图 列线图是数据分析中的经典图形&#xff0c;通过背后精妙的算法设计&#xff0c;展示线性模型&#xff08;logistic regression 和Cox&#xff09;中各个变量对于预测结果的总体贡献&#xff08;线段长短&#xff09;&#xff0c;另外&…...

11. 盛最多水的容器(力扣)

11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不…...

vue3 vite或者vue2 百度地图(卫星图)离线使用详细讲解

1、在Windows上下载瓦片&#xff0c;使用的工具为: 全能电子地图下载器3.0最新版&#xff08;推荐&#xff09; 下载后解压&#xff0c;然后进入目录"全能电子地图下载器3.0最新版&#xff08;推荐&#xff09;\全能电子地图下载器3.0\MapTileDownloader" 在这个目录…...

Docker常用命令清单

一、镜像管理 拉取镜像 docker pull [镜像名]:[标签] 示例&#xff1a;docker pull nginx:latest &#xff08;记忆&#xff1a;pull拉取&#xff0c;类似git拉取代码&#xff09; 构建镜像 docker build -t [镜像名]:[标签] . 示例&#xff1a;docker build -t myapp:v1 . &a…...

大语言模型从理论到实践(第二版)-学习笔记(绪论)

大语言模型的基本概念 1.理解语言是人工智能算法获取知识的前提 2.语言模型的目标就是对自然语言的概率分布建模 3.词汇表 V 上的语言模型&#xff0c;由函数 P(w1w2 wm) 表示&#xff0c;可以形式化地构建为词序列 w1w2 wm 的概率分布&#xff0c;表示词序列 w1w2 wm…...

Unity 通用UI界面逻辑总结

概述 在游戏开发中&#xff0c;常常会遇到一些通用的界面逻辑&#xff0c;它不论在什么类型的游戏中都会出现。为了避免重复造轮子&#xff0c;本文总结并提供了一些常用UI界面的实现逻辑。希望可以帮助大家快速开发通用界面模块&#xff0c;也可以在次基础上进行扩展修改&…...

入门到入土,Java学习day15(常用API下)

group存数据 public String[] matches(String regex)判断字符串是否满足正则表达式的规则 public String replaceAll(String regex,String newStr)按照正则表达式的规则进行替换 public String[] split(String regex)按照正则表达式的规则切割字符串 通常是创建网页对象&am…...

Navigation的进阶知识与拦截器配置

Navigation的进阶知识与拦截器配置 写的不是很详细&#xff0c;后续有时间会补充&#xff0c;建议参考官方文档食用 1.如何配置路由信息 1.1 创建工程结构 src/main/ets ├── pages │ └── navigation │ ├── views │ │ ├── Mine.ets //…...

基于大模型的小脑扁桃体下疝畸形全流程预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 二、小脑扁桃体下疝畸形概述 2.1 定义与分类 2.2 发病机制与病因 2.3 临床表现 2.4 诊断方法 三、大模型在小脑扁桃体下疝畸形预测中的应用 3.1 大模型介绍 3.2 数据收集与处理 3.3 模型训练与验证 四、术前预测与…...

Java数据结构第二十一期:解构排序算法的艺术与科学(三)

专栏&#xff1a;Java数据结构秘籍 个人主页&#xff1a;手握风云 目录 一、常见排序算法的实现 1.1. 归并排序 二、排序算法复杂度及稳定性分析 一、常见排序算法的实现 1.1. 归并排序 归并排序是建⽴在归并操作上的⼀种有效的排序算法,该算法是采⽤分治法的一个⾮常典型的…...