一款java诊断工具,java代码检测工具

发布时间:2022-11-21

本文目录一览:

  1. java内存诊断软件?
  2. 更效率、更优雅 | 阿里巴巴开发者工具不完全盘点
  3. Arthas,7000 字入门篇

java内存诊断软件?

对于每一个 Java 进程来说,都有自己的内存池和使用空间,而这也就意味着会出现内存使用错误等问题。这时候我们就需要对 Java 内存进行诊断分析。今天就一起来了解一下,在进行内存诊断上都有哪些软件可以使用。

Java堆:分析诊断数据

堆转储分析

堆转储可以使用如下工具进行分析:

  • Eclipse MAT (Memory Analyzer Tool)
    Eclipse MAT 是一个社区开发的分析堆转储的工具,它提供了一些很棒的特性,包括:
    • 可疑的泄漏点:能探测堆转储中可疑的泄露点,报告持续占有大量内存的对象;
    • 直方图:列出每个类的对象数量、浅大小(shallow)以及这些对象所持有的堆。直方图中的对象可以很容易地使用正则表达式进行排序和过滤;
    • 不可达的对象:允许在工作集对象中包含或排除不可达/死对象;
    • 重复的类:展现由多个类加载器所加载的重复的类;
    • 到 GC 根的路径:展示到 GC 根(JVM 本身保持存活的对象)的引用链;
    • OQL:使用对象查询语言(Object Query Language)来探查堆转储中的对象。
  • Java VisualVM
    一站式工具,可以监控、分析和排查 Java 应用。它能够为正在监控的应用创建堆转储,也可以加载和解析它们。
  • jhat
    提供堆转储分析功能,能够在任意浏览器中展现堆转储中的对象,默认情况下 Web 服务器会在 7000 端口启动。
  • Java 任务控制(Java Mission Control)的 JOverflow 插件
    实验性插件,能够让 Java 任务控制执行简单的堆转储分析并报告哪里可能存在内存浪费。
  • Yourkit
    商业 Java Profiler,具备堆转储分析器,支持:
    • 可达性的范围:显示对象的强可达、弱/软可达或不可达状态;
    • 内存探查:内置查询,查找反模式并提供常见内存问题的解决方案。

更效率、更优雅 | 阿里巴巴开发者工具不完全盘点

从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅地写代码。

Arthas

  • 简介:阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具。
  • 使用场景:支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,提供丰富的 Tab 自动补全功能。
  • 获取方式开源地址

Cloud Toolkit

  • 简介:IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。
  • 使用场景:一键部署本地应用到任意机器,内置 Arthas 诊断、高效执行终端命令和 SQL。
  • 获取方式工具地址

ChaosBlade

  • 简介:遵循混沌工程实验原理,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性。
  • 使用场景:注入延迟、异常、返回特定值等故障。
  • 获取方式开源地址

Java 代码规约插件

  • 简介:检测 Java 代码中存在的不规范位置,并给予提示。
  • 使用教程
    • IDEA 插件使用文档
    • Eclipse 插件使用文档
  • 获取方式开源地址

ARMS

  • 简介:APM 类监控工具,提供前端、应用、自定义监控 3 类监控选项。
  • 使用场景:快速构建实时的应用性能和业务监控能力。
  • 获取方式工具地址

Docsite

  • 简介:静态站点解决方案,支持 React、静态渲染、中英文国际化、SEO、Markdown 文档等。
  • 获取方式项目地址

Freeline

  • 简介:利用缓存文件,快速编译并部署代码改动。
  • 使用教程:安装 Android Studio 插件即可。
  • 获取方式项目地址

PTS

  • 简介:模拟大量用户访问业务的场景,支持 JMeter 脚本转换。
  • 获取方式工具地址

KT

  • 简介:简化 Kubernetes 下的联调测试复杂度。
  • 获取方式工具地址

AHAS

  • 简介:为 K8s 提供架构可视化、故障注入评测和流控降级等功能。
  • 获取方式工具地址

Arthas,7000 字入门篇

Arthas 是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决:

  • 应用 CPU 使用率飙升
  • 方法执行慢
  • 线程阻塞
  • 类加载异常
  • JVM 参数配置问题

安装与启动

推荐使用 arthas-boot,下载 arthas-boot.jar,然后用 java -jar 的方式启动:

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

注意:在运行前,先启动一个 Java 进程,否则会出现找不到 Java 进程的错误。

常用命令

  • dashboard:查看当前进程信息,按 Ctrl+C 中断。
  • thread:查看线程堆栈信息。
    • thread -n 3:显示最忙的前 3 个线程。
    • thread -b:找出当前阻塞其他线程的线程。
  • jad:反编译类。
    • jad java.lang.String:反编译 String 类。
  • watch:观察方法调用。
    • watch demo.MathGame primeFactors returnObj:查看 primeFactors 方法的返回值。
  • redefine:重新定义类。
  • getstatic:查看类的静态属性。
  • sc:搜索已加载的类。
  • sm:搜索类的方法。
  • ognl:执行 OGNL 表达式。
  • mc:内存编译 .java 文件生成 .class
  • version:输出当前 Arthas 版本号。
  • quit:退出当前 Arthas 客户端。
  • stop:关闭 Arthas 服务端。

Web Console

Arthas 支持 Web Console,用户在 attach 成功之后,可以直接访问:

http://<ip>:8000

默认情况下,Arthas 只监听 127.0.0.1,如果想从远程连接,可以使用 --target-ip 参数指定监听的 IP。

快捷键

  • Tab:自动补全命令。
  • Ctrl+C:中断当前命令。
  • Q 或 Ctrl+C:退出当前命令。
  • 上下键:浏览历史命令。

官方文档


作者:中间件小哥