大家好,我是TJ
關注TJ君,回復「武功秘籍」免費獲取計算機寶典書籍
TJ君將之前發過的各種項目及工具進行了整理,收錄到了GitHub項目,歡迎各位小夥伴光臨Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU
小夥伴們平時編程的時候遇到的最大的難題是什麼?TJ君覺得應該是處理各種各樣沒見過的異常報錯吧,有些問題還可以百度一下求教,有些問題就只能是丈二和尚摸不着頭腦,看個半天了。
TJ君前兩天機緣巧合之下看到一個Java診斷利器,Arthas
覺得還不錯,趕緊來和大家分享一下。

Arthas是Alibaba開源的一款Java診斷工具,對於一些初學者來說用途還是大大的,例如它可以解決以下這些問題:
Arthas的使用也是非常簡單,有兩種方式:
1、使用arthas-boot(推薦)
下載arthas-boot.jar,然後用java -jar的方式啟動:
curl-Ohttps://arthas.aliyun.com/arthas-boot.jarjava-jararthas-boot.jar
打印幫助信息:
java-jararthas-boot.jar-h
如果下載速度比較慢,可以使用aliyun的鏡像:java -jar arthas-boot.jar --repo-mirror aliyun --use-http
2、使用as.sh
Arthas 支持在 Linux/Unix/Mac 等平台上一鍵安裝,請複製以下內容,並粘貼到命令行中,敲 回車 執行即可:
curl-Lhttps://arthas.aliyun.com/install.sh|sh
上述命令會下載啟動腳本文件 as.sh 到當前目錄,你可以放在任何地方或將其加入到 $PATH 中。
直接在shell下面執行./as.sh,就會進入交互界面。
也可以執行./as.sh -h來獲取更多參數信息。
同時,還有很多在線文檔對於Arthas給出支持

舉例,如果你想知道當前最忙的前N個線程,可以簡單的通過命令thread -n 3查看並打出堆棧:
$thread-n3"C1CompilerThread0"[Internal]cpuUsage=1.63%deltaTime=3mstime=1170ms"arthas-command-execute"Id=23cpuUsage=0.11%deltaTime=0mstime=401msRUNNABLEatjava.management@11.0.7/sun.management.ThreadImpl.dumpThreads0(NativeMethod)atjava.management@11.0.7/sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:466)atcom.taobao.arthas.core.command.monitor200.ThreadCommand.processTopBusyThreads(ThreadCommand.java:199)atcom.taobao.arthas.core.command.monitor200.ThreadCommand.process(ThreadCommand.java:122)atcom.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.process(AnnotatedCommandImpl.java:82)atcom.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.access$100(AnnotatedCommandImpl.java:18)atcom.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:111)atcom.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:108)atcom.taobao.arthas.core.shell.system.impl.ProcessImpl$CommandProcessTask.run(ProcessImpl.java:385)atjava.base@11.0.7/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)atjava.base@11.0.7/java.util.concurrent.FutureTask.run(FutureTask.java:264)atjava.base@11.0.7/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)atjava.base@11.0.7/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)atjava.base@11.0.7/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)atjava.base@11.0.7/java.lang.Thread.run(Thread.java:834)"VMPeriodicTaskThread"[Internal]cpuUsage=0.07%deltaTime=0mstime=584ms
更多實用的技巧還是等小夥伴自己來體驗吧!工具地址如下:
點擊下方卡片,關注公眾號「TJ君」
回復「Arthas2022」,獲取倉庫地址
關注我,每天了解一個牛x、好用、有趣的東東
對方已撤回一條消息?到底是什麼?試試這個無需安裝直接使用的小工具吧
一個基於 React native 開發的安卓音樂軟件
FASTJSON2,為下一個十年提供的高性能JSON庫