Stories

Detail Return Return

Java程序性能分析:開篇之jps - Stories Detail

一、前言

  • 開發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

user avatar sofastack Avatar u_16502039 Avatar tech Avatar u_16769727 Avatar u_11365552 Avatar lvlaotou Avatar yizhidanshendetielian Avatar invalidnull Avatar chaochenyinshi Avatar tuhooo Avatar changqingdezi Avatar shenchendexiaoyanyao Avatar
Favorites 32 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.