亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

升級(jí) | Java開源診斷工具 Arthas 發(fā)布v3.1.0

來源:中間件小哥 發(fā)布時(shí)間:2019-02-23 17:00:08 閱讀量:1071

Arthas

Arthas 自2018年9月份上線以來「?jìng)魉烷T」,已收獲近萬個(gè)star,感謝開發(fā)者們的認(rèn)可。此次Arthas 3.1.0版本的發(fā)布,不僅帶來大家投票出來的新LOGO,還帶來強(qiáng)大的新功能和更好的易用性,下面一一介紹。

在線教程

在新版本Arthas里,增加了在線教程,用戶可以在線運(yùn)行Demo,一步步學(xué)習(xí)Arthas的各種用法,推薦新手嘗試:

非常歡迎大家來完善這些教程。

增加內(nèi)存編譯器支持,在線編輯熱更新代碼

3.1.0版本里新增命令mc,不是方塊游戲mc,而是Memory Compiler。

在之前版本里,增加了redefine命令,可以熱更新字節(jié)碼。但是有個(gè)不方便的地方:需要把.class文件上傳到服務(wù)器上。

3.1.0版本里,結(jié)合jad/mc/redefine 可以完美實(shí)現(xiàn)熱更新代碼。

以 Arthas在線教程 里的UserController為例:

  1. 使用jad反編譯代碼

    jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
  2. 使用vim編譯代碼

    當(dāng) user id 小于1時(shí),也正常返回,不拋出異常:

        @GetMapping("/user/{id}")    public User findUserById(@PathVariable Integer id) {
            logger.info("id: {}" , id);        if (id != null && id < 1) {            return new User(id, "name" + id);            // throw new IllegalArgumentException("id < 1");
            } else {            return new User(id, "name" + id);
            }
        }
  3. 使用mc命令編譯修改后的UserController.java

    $ mc /tmp/UserController.java -d /tmp
    Memory compiler output:
    /tmp/com/example/demo/arthas/user/UserController.class
    Affect(row-cnt:1) cost in 346 ms
  4. 使用redefine命令,因?yàn)榭梢詿岣麓a

    $ redefine /tmp/com/example/demo/arthas/user/UserController.classredefine success, size: 1

絲滑的自動(dòng)補(bǔ)全

在新版本里,改進(jìn)了很多命令的自動(dòng)補(bǔ)全,比如 watch/trace/tt/monitor/stack等。

下面是watch命令的第一個(gè)Tab補(bǔ)全結(jié)果,用戶可以很方便的一步步補(bǔ)全類名,函數(shù)名:

$ watch
com.   sun.   javax. ch.    io.    demo.  jdk.   org.   java.

另外,新增加了 jad/sc/sm/redefine 等命令的自動(dòng)補(bǔ)全支持,多按Tab有驚喜。

新版本的Web console

新版本的Web Console切換到了xtermd.js,更好地支持現(xiàn)代瀏覽器。

  • 支持Ctrl + C復(fù)制

  • 支持全屏

web console

Docker鏡像支持

Arthas支持Docker鏡像了

  • 用戶可以很方便地診斷Docker/k8s里的Java進(jìn)程

  • 也可以很方便地把Arthas加到自己的基礎(chǔ)鏡像里

參考: https://alibaba.github.io/arthas/docker.html

重定向重新設(shè)計(jì)

之前的版本里,Arthas的重定向是會(huì)放到一個(gè)~/logs/arthas-cache/目錄里,違反直覺。

在新版本里,重定向和Linux下面的一致,>/>>的行為也和Linux下一致。

并且,增加了 cat/pwd命令,可以配置使用。

總結(jié)

總之,3.1.0版本的Arthas帶了非常多的新功能,改進(jìn)了很多的用戶體驗(yàn),歡迎大家使用反饋。

  • Arthas在線教程可以學(xué)到很多技巧

  • jad/mc/redefine 一條龍非常強(qiáng)大

  • 絲滑的自動(dòng)補(bǔ)全值得嘗試

  • 新版本的Web console有驚奇

Release Note: https://github.com/alibaba/arthas/releases/tag/3.1.0


標(biāo)簽: PHP
分享:
評(píng)論:
你還沒有登錄,請(qǐng)先