JVM调优小工具之jps

jps是JDK自带的用于查看虚拟机进程状况的命令行工具,可以显示LVMID、主类信息及启动参数等。通过不同选项如-jq、-m、-v、-l,用户可以获取更详细的信息,常与其他JDK工具配合使用来辅助JVM调优。

JVM调优小工具之jps

jps是什么?

jps(JVM Process Status Tool)是JDK自带的,用于查看虚拟机进程状况的命令行工具。
在Linux或者Windows环境下,打开JDK安装目录下的bin目录就可以看到jps。
在这里插入图片描述

在这里插入图片描述

jps有什么用?

列出当前正在运行的虚拟机进程,显示该虚拟机运行的主类信息,以及该进程的本地虚拟机ID(LVMID,Local Virtual Machine Identifier)

jps如何使用?

在这里插入图片描述

命令基本格式为: jps [options] [<hostid>]
其中hostid为: <hostname>[:<port>]
options包括以下选项:

options作用
-q只列出LVMID
-m输出虚拟机启动时传给main()函数的参数
-l (小写的L)输出主类全名或jar包路径
-v输出虚拟机启动时的JVM参数
-V输出通过flags file 传递给虚拟机的JVM参数
使用示例
  1. jps: 列出当前正在运行的虚拟机进程的基本信息,包括LVMID、主类名。(由此可见,运行jps时实际也是会创建JVM进程的)
    在这里插入图片描述

  2. jps -q: 仅列出LVMID
    在这里插入图片描述

  3. jps -m: 可查看虚拟机启动时传给mian()函数的参数。
    在这里插入图片描述

  4. jps -v: 查看JVM启动参数。
    在这里插入图片描述

  5. jps -l: 查看主类全名,如果运行的是jar包则显示jar包路径。
    在这里插入图片描述

小结

jps功能比较简单,主要就是用于查看虚拟机进程基本信息。但由于其它JDK自带的小工具往往需要手动传入LVMID作为参数,因此这些工具通常需要结合jps一同使用。

注: 未经授权,禁止转载

### 推荐的JVM性能工具 以下是几种常用的JVM性能工具及其特点: #### 1. **JVisualVM** `JVisualVM` 是一种图形化工具,能够帮助开发者监控、分析和Java 应用程序。它可以显示 JVM 的内存使用情况、线程状态以及其他重要指标,并支持插件扩展功能[^1]。 #### 2. **jps (Java Virtual Machine Process Status Tool)** `jps` 工具用于列出当前系统中所有的 Java 进程及其进程 ID(PID)。这是其他诊断工具的基础,因为许多工具都需要 PID 来连接到目标 JVM 实例[^2]。 #### 3. **jstack** `jstack` 可以生成指定 Java 进程的线程转储信息,这对于排查线程死锁或长时间阻塞等问题非常有用。通过 `-l` 参数还可以获取详细的锁信息,而 `-m` 则提供了混合模式下的 C/C++ 堆栈跟踪[^5]。 #### 4. **jmap 和 jhat** - `jmap` 提供了关于堆内存的状态快照,包括对象分配详情和垃圾回收行为。 - 配合 `jhat` 使用时,可以启动一个 HTTP/HTML 浏览器界面来查看这些数据,便于深入理解内存泄漏或其他问题。 #### 5. **jstat (JVM Statistics Monitoring Tool)** 此命令行实用程序允许实时监视虚拟机的各种统计信息,如类加载、编译效率以及不同代别的 GC 活动频率等。它是快速了解 JVM 内部运作状况的好帮手。 #### 6. **hprof (Heap/CPU Profiling Tool)** 作为内置配置文件生成器之一,`hprof` 能够记录 CPU 时间消耗或者追踪内存分配路径,从而辅助定位瓶颈所在位置。 #### 7. **第三方商业产品** 对于更大规模的应用场景来说,可能还需要依赖更加专业的解决方案: - **YourKit**: 功能全面且易于操作,适合各种级别的开发人员; - **JProfiler**: 主打交互性强的特点,特别擅长处理复杂的分布式事务; - **Prometheus + Grafana**: 如果团队已经采用 DevOps 方法论,则这套开源组合也可以很好地集成进来完成持续交付流程中的自动化测试环节[^4]。 ```python import os def get_jvm_tools(): tools = [ "JVisualVM", "jps", "jstack", "jmap & jhat", "jstat", "hprof" ] third_party = ["YourKit", "JProfiler", "Prometheus + Grafana"] return {"built_in": tools, "third_party": third_party} print(get_jvm_tools()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值