日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

控制台怎么查看错误的详细信息_Java 程序该怎么优化?命令篇

發布時間:2023/12/19 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 控制台怎么查看错误的详细信息_Java 程序该怎么优化?命令篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

靈魂拷問,JDK 提供的命令,除了 java、javac,你還用過哪些命令呢?

靈魂再拷問,若你寫的 Java 程序,出現了性能問題,該怎么去排查呢?

Java 作為編程語言中的戰斗機,JDK 默認已經為我們提供了很多排查問題的工具,接下來就逐一認識認識。

1. jps

jps 命令,可以列出系統中所有運行 Java 進程,并可以查看 Java 進程的啟動類、傳入參數以及 JVM 參數等信息。

例如,在控制臺輸入 jps -lmv 命令,效果如下(截取部分內容)。

很顯然,jps 背后是一個 Java 程序,列出了完整的類路徑、傳給 main 方法的參數,以及 JVM 的參數。

為了方便了解、查閱,對 jps 命令的參數進行大致的梳理。

另外,不要大驚小怪,jps 以及下面要提到的 JDK 的排查工具,本質都是 Java 程序。

2. jstat

jstat 命令,用于查看 Java 進程的堆使用情況以及 GC 情況。

例如,輸出 Java 進程 90961 的類加載相關信息,每秒鐘統計一次信息,一共輸出 3 次。

控制臺輸入命令:jstat -class 90961 1000 3,效果如下。

例如,顯示 GC 相關的堆信息。

控制臺輸入命令:jstat -gc 90961,效果如下。

例如,顯示最近一次 GC 的原因及當前 GC 的原因。

控制臺輸入命令:jstat -gccause 90961,效果如下。

參數含義解釋:LGCC:上次 GC 的原因;GCC:當前 GC 的原因。

另外,為了方便了解、查閱,對 jstat 命令的參數進行大致的梳理。

3. jinfo

jinfo 命令,可以幫我們查看正在運行的 Java 進程的擴展參數,并支持在運行時修改部分參數;可以很方便地幫我們找到 JVM 參數的當前值。

例如,查看 Java 進程 90961 是否開啟打印 GC 詳細信息。

命令:jinfo -flag PrintGCDetails 90961

例如,打開 Java 進程 90961 的 PrintGCDetails 開關。

命令:jinfo -flag +PrintGCDetails 90961

例如,關閉 Java 進程 90961 的 PrintGCDetails 開關。

命令:jinfo -flag -PrintGCDetails 90961

使用比較簡單,就不貼效果啦。

另外,為了方便了解、查閱,對 jinfo 命令的參數也進行大致的梳理。

4. jmap

jmap 命令,可以幫我們生成 Java 進程的堆快照和對象的統計信息。

例如,生成 PID 為 90961 的 Java 進程的對象統計信息,并輸出到 yyxj.txt 文件中。

控制臺輸入命令:jmap -histo 90961 > yyxj.txt,打開文件效果如下。

例如,生成 PID 為 90961 的 Java 進程的當前堆快照,輸出到 heap.hprof 文件中。

命令:jmap -dump:format=b,file=heap.hprof 90961

對于輸出的 heap.hprof 快照文件,可以使用 jhat、VisualVM 等工具打開查看。采用 VisualVM 工具查看,效果如下。

5. jhat

jhat 命令,用于分析 Java 程序的堆快照內容,并且在分析完成之后,啟動一個 HTTP 服務,讓我們可以通過瀏覽器查看 Java 堆快照信息。

例如,采用 jhat 分析上一步中 jmap 輸出的堆快照文件。

輸入命令:jhat heap.hprof,效果如下。

瀏覽器訪問 http://127.0.0.1:7000,一探究竟。

另外,唯恐堆快照會比較大,jhat 還支持 OQL 語句查詢堆快照信息,閑暇之余可參考幫助手冊 http://127.0.0.1:7000/oqlhelp/ 進行深入了解。

6. jstack

jstack 命令,可以幫助我們導出 Java 程序的線程堆棧,并自動幫我們進行死鎖檢查,并輸出找到的死鎖信息。

例如,把 PID 為 92760 的 Java 進程的線程堆棧信息,輸出保存到文件中。

命令:jstack -l 92760 > deadlock.txt,打開 deadlock.txt,進程的內部細節,一覽無余,那么我們很容易,就能找到死鎖。

7. 其它

本次提到的這些命令,建議有時間實操一遍,因為紙上得來終覺淺,絕知此事要躬行

JDK 提供的排查問題的命令還有很多,時間關系,本次就不再一一列舉。

后續會進行實戰分析,看看如何把這些命令組合起來,去打一套好的組合拳出來,敬請期待。

推薦閱讀:

Java 程序該怎么優化?技巧篇

總結

以上是生活随笔為你收集整理的控制台怎么查看错误的详细信息_Java 程序该怎么优化?命令篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。