zoukankan      html  css  js  c++  java
  • Alibaba开源的Java诊断工具 -- Arthas

    Arthas 是Alibaba开源的Java诊断工具,方便开发者进行问题的定位和诊断。用户文档:https://arthas.aliyun.com/doc/

    热编译: https://developer.aliyun.com/article/690240 

    可以

    1. 查看方法调用情况
    2. 查看方法入参
    3. 反编译源码
    4. 查看系统的运行状况
    5. 监控到JVM的实时运行状态
    6. 。。。

    安装

    • 方法一,使用arthas-boot(推荐):

       wget https://alibaba.github.io/arthas/arthas-boot.jar  
        java -jar arthas-boot.jar

      方法二,使用as.sh:

    • curl -L https://alibaba.github.io/arthas/install.sh | sh

    idea中安装Alibaba Cloud Toolkit

    安装成功后会有以下图

     其中Upload上传文件,  更多里的Diagnostic诊断代码;

    使用arthas修复线上代码

    替换代码的流程:

    1、jad命令 将需要更改的文件先进行反编译,保存下来 ,编译器修改

    $ jad --source-only com.chitic.supplywater.common.controller.DahuaApiImpl > /tmp/common/DemoApplication.java

    修改完以后需要将类重新加载到JVM

    2、SC命令 查找当前类是哪个classLoader加载的

    $ sc -d com.chitic.supplywater.common.controller.DahuaApiImpl | grep classLoader

    classLoaderHash 20ad9418 #类加载器 编号

    3、MC命令 用指定的classloader重新将类在内存中编译

    $ mc -c 20ad9418 /tmp/common/DemoApplication.java -d /tmp/common 
    Memory compiler output:
    /tmp/common/com/chitic/supplywater/common/controller/DemoApplication.class

    注意:mc编译可能出错,可以在本地编译好然后上传到服务器


    4、redefine命令 将编译后的类加载到JVM

    上边编译后的.class文件地址

    $ redefine -c 20ad9418 /tmp/common/com/chitic/supplywater/common/controller/DemoApplication.class redefine success, size: 1
  • 相关阅读:
    RubyConf的podcast
    一篇很好的英语学习文章:一个孤独而封闭世界――英语口语
    新浪和搜狐的读书频道
    新想法:个性化的RSS
    代码搜索:Koders
    我看到的Web 2.0: 自组织的大众化参与
    土豆网的后舍男孩挺搞笑的
    可以给pdf加批注的软件VeryPDF PDF Editor
    张海迪写的描写英语学习经验的书《美丽的英语》
    Fowler出来推荐Rake了(基于Ruby的build工具)
  • 原文地址:https://www.cnblogs.com/gaomanito/p/13753349.html
Copyright © 2011-2022 走看看