首页 > 编程语言 >Java程序性能分析:开篇之jps

Java程序性能分析:开篇之jps

时间:2023-07-02 17:03:07浏览次数:58  
标签:输出 Java 开篇 Launcher 进程 java jps

一、前言

  • 开发Java项目过程中,难免会碰到一些 性能 问题,这时候就需要一些工具,帮忙排查
  • 本文开篇主要介绍 JDK自带的工具 jps,获取 Java程序列表,以 openjdk 11.0.10 为例

二、Java程序列表:jps

1. 简介

  • 用来查找当前用户的 Java 进程,而不能查找当前系统中其他用户的进程
  • 相比 Linux系统 的 ps -ef | grep java,Windows系统的 tasklist | findstr java,jps 查找Java进程命令更简洁
  • 列表里面会多一个 Jps的进程,每次进程号都不一样
    jps.png

2. jps:输出 进程号、应用主类名

不包含包名,有些类名不容易分辨是哪个服务的进程,如下第3个 Launcher

15056 
31504 RemoteMavenServer36
17604 Launcher
11368 
32764 Jps

3. jps -l:多输出 包名

输出包名,能帮助分辨 是哪个服务的进程,如下第3个是 IDEA开发工具的 Launcher

15056 
31504 org.jetbrains.idea.maven.server.RemoteMavenServer36
17604 org.jetbrains.jps.cmdline.Launcher
32324 jdk.jcmd/sun.tools.jps.Jps
11368

4. jps -m:多输出 jar 路径

  • 相比 jps,多输出 jar 路径
    jps-m.png

5. jps -v:多输出 启动参数

  • 相比 jps,多输出 启动参数
    jps-v.png

6. jps -V:输出 flag 文件的 JVM 参数

  • 输出通过 flag 文件传递到 JVM 中的参数(很少用到)
  • .hotspotrc 文件或 - XX:Flags = 所指定的文件。没有配置时,效果和 jps 一样

7. jps -q:只输出 进程号

  • 只输出 进程号,比较适用于 docker、k8s容器等 只有1个Java进程的场景
  • 但是还有一个 jps进程号干扰,并且只有进程号,不好区分哪个是 jps进程
15056
31504
17604
11368

三、总结

  • 相比 Linux系统 的 ps -ef | grep java,Windows系统的 tasklist | findstr java,jps 查找Java进程命令更简洁
  • 后面将继续介绍 JDK自带、第三方的 性能分析工具,敬请期待哦

本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明,否则将追究法律责任。
本文首先发布于 https://www.890808.xyz/ ,其他平台需要审核更新慢一些。

javalover123

标签:输出,Java,开篇,Launcher,进程,java,jps
From: https://blog.51cto.com/javalover123/6605812

相关文章

  • Java中Map初始化时直接赋值的方法
    publicstaticfinalMap<String,String>BANK_TYPE=newHashMap<String,String>(){undefinedprivatestaticfinallongserialVersionUID=1L;//可有可无{undefinedput("ZX","中信银行");put("PN",&qu......
  • JAVA解压tar、zip、rar文件
    1、添加pom依赖<!--tar解压依赖--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.20</version><......
  • 八期day05-java基础
    1Java环境搭建#合伙人---》下次讲#java:做反编译,发现好多java代码看不太懂,有些加密算法,也不太好破---》接下来的时候,要学习java开发 -找到加密算法---》chatgpt,让它给你写---》转成python---》自己手动调#java编译型语言 -javase:java基础---》python中变量定义,函数,......
  • 八期day06-java基础2
    零python和java字节字符串比较0.1java字节数组和字符串相互转换//1字符串转字节数组v4="彭于晏"byte[]b=v4.getBytes();//默认utf8形式System.out.println(b);//输出对象形式,看不到字节数组System.out.println(Arrays.toString(b));//try{//......
  • java List复制:浅拷贝与深拷贝
    Java的拷贝可以分为三种:浅拷贝(ShallowCopy)、深拷贝(DeepCopy)、延迟拷贝(LazyCopy)。在java中除了基本数据类型之外(int,long,short等),还存在引用数据类型,例如String以及对象实例。对于基本数据类型,实际上是拷贝它的值,而对于引用数据类型,拷贝的就是它的引用,并没有创建一个新的......
  • java -- 常见API` 1
        ......
  • javac: invalid target release: 1.6
    Itriedtobuildaprojectonnetbeanswhenthiserrorcameup:javac:invalidtargetrelease:1.6Usage:javac<options><sourcefiles>wherepossibleoptionsinclude:-gGeneratealldebugginginfo-g:noneGeneratenodebugginginfo-......
  • 关于java 虚拟机栈
    线程的栈是在哪里提出来了的?Oracle官网的java虚拟机规范里面,2.5.2章节。网址:https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-2.html下图就是我们常说的java虚拟机栈。java虚拟机栈的栈帧具体是什么?栈帧(StackFrame)是以方法(Method)为基础的。栈帧里面有局部变量表(......
  • JAVA_OPTS
    JAVA_OPTS是一个环境变量,它可用于设置Java虚拟机(JVM)的运行参数。通过设置JAVA_OPTS环境变量,您可以为Java应用程序提供各种运行时配置。以下是使用JAVA_OPTS环境变量进行常见配置的示例:指定堆内存大小:-Xmx:设置最大堆内存大小,如 -Xmx2G 表示将最大堆内存设置为2GB......
  • 什么是JAVA内容仓库(Java Content Repository)
    内容仓库模型JSR-170是这样定义内容仓库的,内容仓库由一组workspace(工作空间)组成,这些workspace通常应该包含相似的内容。一个内容仓库有一个到多个workspace。每个workspace都是一个树状结构,都有一个唯一的树根节点(rootnode)。树上的item(元素)或者是个node(节点)或者是个property......