一、前言
- 開發Java項目過程中,難免會碰到一些 性能 問題,這時候就需要一些工具,幫忙排查
- 本文開篇主要介紹 JDK自帶的工具 jps,獲取 Java程序列表,以 openjdk 11.0.10 為例
二、Java程序列表:jps
1. 簡介
- 用來查找當前用户的 Java 進程,而不能查找當前系統中其他用户的進程
- 相比
Linux系統的 ps -ef | grep java,Windows系統的 tasklist | findstr java,jps查找Java進程命令更簡潔 - 列表裏面會多一個 Jps的進程,每次進程號都不一樣
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 路徑
5. jps -v:多輸出 啓動參數
- 相比 jps,多輸出 啓動參數
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/ ,其他平台需要審核更新慢一些。