自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度解析阿里Arthas:從入門到精通,掌握J(rèn)ava應(yīng)用問題排查利器

開發(fā) 開發(fā)工具
本篇帶給大家Arthas的一些常用命令,可以幫助開發(fā)者快速定位和解決Java應(yīng)用中的問題。當(dāng)然,Arthas還有許多其他的功能和命令,這里只是介紹了一部分。

Arthas是阿里開源的一款Java診斷工具,支持在線排查Java應(yīng)用問題。它能夠幫助Java開發(fā)者快速定位并解決生產(chǎn)環(huán)境中的各種問題,例如性能問題、死鎖問題、內(nèi)存泄漏問題等。

以下是Arthas教程的詳細(xì)介紹,包括每個(gè)使用知識(shí)點(diǎn)的實(shí)例命令和輸出:

1、安裝Arthas

首先需要下載Arthas并安裝,具體操作可以參考Arthas的官方文檔。

2、連接目標(biāo)Java進(jìn)程

在Arthas安裝完成后,使用以下命令連接目標(biāo)Java進(jìn)程:

$ java -jar arthas-boot.jar
$ attach PID

其中,PID是目標(biāo)Java進(jìn)程的進(jìn)程ID。

輸出:

成功連接到目標(biāo)Java進(jìn)程。

3、查看Java類信息

使用以下命令可以查看Java類的信息:

  • 查看類名:
$ class com.example.demo.DemoController

輸出:

class com.example.demo.DemoController
  • 查看類的所有方法:
$ method com.example.demo.DemoController

輸出:

com.example.demo.DemoController
public java.lang.String com.example.demo.DemoController.hello(java.lang.String)
public void com.example.demo.DemoController.handleException()
  • 查看類的所有屬性:
$ field com.example.demo.DemoController

輸出:

com.example.demo.DemoController
private static final org.slf4j.Logger com.example.demo.DemoController.logger

4、監(jiān)控Java方法

使用以下命令可以監(jiān)控Java方法的執(zhí)行情況:

  • 監(jiān)控指定方法的執(zhí)行情況:
$ monitor -c 5 com.example.demo.DemoController hello

其中,-c 5表示監(jiān)控5次方法執(zhí)行情況,
com.example.demo.DemoController表示類名,hello表示方法名。

輸出:

Monitoring com.example.demo.DemoController#hello for 5 times, interval: 1s, timeout: 300s.
Press Ctrl+C to abort.
Execution count: 1, Total cost: 43.291 ms, Avg cost: 43.291 ms, Min cost: 43.291 ms, Max cost: 43.291 ms, Exception count: 0, TPS: 23.13/s
Execution count: 2, Total cost: 41.117 ms, Avg cost: 41.117 ms, Min cost: 41.117 ms, Max cost: 41.117 ms, Exception count: 0, TPS: 24.36/s
Execution count: 3, Total cost: 39.304 ms, Avg cost: 39.304 ms, Min cost: 39.304 ms, Max cost: 39.304 ms, Exception count: 0, TPS: 25.42/s
Execution count: 4, Total cost: 41.825 ms, Avg cost: 41.825 ms, Min cost: 39.304 ms, Max cost: 43.291 ms, Exception count: 0, TPS: 23.91/s
Execution count: 5, Total cost: 42.246 ms, Avg cost: 49.2 ms, Min cost: 39.304 ms, Max cost: 83.554 ms, Exception count: 0, TPS: 24.44/s
  • 監(jiān)控所有方法的執(zhí)行情況:
$ monitor -c 5 com.example.demo.DemoController

其中,-c 5表示監(jiān)控5次方法執(zhí)行情況,
com.example.demo.DemoController表示類名。

輸出:

Monitoring com.example.demo.DemoController for 5 times, interval: 1s, timeout: 300s.
Press Ctrl+C to abort.
Execution count: 2, TPS: 1.0/s
Execution count: 2, TPS: 1.0/s
Execution count: 2, TPS: 1.0/s
Execution count: 2, TPS: 1.0/s
Execution count: 2, TPS: 1.0/s

5、查看Java線程信息

使用以下命令可以查看Java線程的信息:

  • 查看當(dāng)前所有線程:
$ thread

輸出:

Id   Group  State         Name
1 main RUNNABLE ...
2 main WAITING ...
3 main TIMED_WAITING ...
4 main BLOCKED ...
  • 查看指定線程的信息:
$ thread 1

其中,1表示線程ID。

輸出:

Thread[main,5,main]
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)

6、查看Java內(nèi)存信息

使用以下命令可以查看Java內(nèi)存的信息:

  • 查看當(dāng)前Java進(jìn)程的內(nèi)存情況:
$ jvm

輸出:

Class Loaders: 7
Loaded Classes: 13198
Total Classes: 13241
Heap Memory Usage: init:2621440, used:32950664, committed:54525952, max:3715249152
Non-Heap Memory Usage: init:2555904, used:49171920, committed:51773440, max:-1
  • 查看指定Java類的實(shí)例情況:
$ jvm com.example.demo.User

其中,com.example.demo.User表示類名。

輸出:

Class: com.example.demo.User
Loaded Count: 1
Instance Count: 1
Total Count: 1

7、調(diào)試Java應(yīng)用

使用以下命令可以在Java應(yīng)用中進(jìn)行調(diào)試:

  • 打開Java應(yīng)用的調(diào)試端口:
$ jad --source-only com.example.demo.DemoController hello

其中,
com.example.demo.DemoController表示類名,hello表示方法名。

輸出:

$ jad --source-only com.example.demo.DemoController hello
Decompiled code of com.example.demo.DemoController#hello is as follows:
  • 使用調(diào)試器連接Java應(yīng)用的調(diào)試端口:
$ jdb -attach 127.0.0.1:8000

8、其他命令

除了以上介紹的命令之外,Arthas還提供了一些其他有用的命令,例如:

  • 查看Java類的字節(jié)碼:
$ sc com.example.demo.DemoController

其中,
com.example.demo.DemoController表示類名。

輸出:

Class: com.example.demo.DemoController
ClassLoader: sun.misc.Launcher$AppClassLoader@18b4aac2
Location: file:/Users/arthas/arthas-demo/target/classes/
Code Source: file:/Users/arthas/arthas-demo/target/classes/
Super Class: org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
  • 查看Java類的加載情況:
$ classloader

輸出:

ClassLoader tree:
sun.misc.Launcher$AppClassLoader@18b4aac2
+- sun.misc.Launcher$ExtClassLoader@6cd87312
  • 查看當(dāng)前系統(tǒng)的環(huán)境變量:
$ env

輸出:

PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  • 查看當(dāng)前的工作目錄:
$ pwd

輸出:

/Users/arthas
  • 查看當(dāng)前的Java版本:
$ version

輸出:

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_212-b03)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.212-b03, mixed mode)
  • 退出Arthas:
$ quit

輸出:

Bye! Enjoy the day, enjoy the life~

以上是Arthas的一些常用命令,可以幫助開發(fā)者快速定位和解決Java應(yīng)用中的問題。當(dāng)然,Arthas還有許多其他的功能和命令,這里只是介紹了一部分,感興趣的讀者可以查看官方文檔或者自行探索。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2022-05-12 08:32:25

JavaArthas阿爾薩斯

2023-09-20 00:08:37

2010-02-06 15:31:18

ibmdwAndroid

2009-07-22 14:55:16

ibmdwAndroid

2017-05-09 08:48:44

機(jī)器學(xué)習(xí)

2016-12-08 22:39:40

Android

2022-06-10 08:17:52

HashMap鏈表紅黑樹

2024-09-06 17:45:55

Linux磁盤

2023-09-16 18:54:38

Pythonfor循環(huán)

2012-02-29 00:49:06

Linux學(xué)習(xí)

2025-02-24 10:07:10

2021-11-14 16:07:35

中間件阿里Seata

2010-11-08 10:20:18

2024-02-26 08:52:20

Python傳遞函數(shù)參數(shù)參數(shù)傳遞類型

2022-09-02 15:11:18

開發(fā)工具

2023-06-28 08:08:06

Flask上下文生命周期

2023-10-13 08:23:05

2009-07-03 18:49:00

網(wǎng)吧綜合布線

2010-02-07 10:25:11

Android

2015-11-18 09:28:44

內(nèi)存泄露入門
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)