Skip to content

xxsddm/JavaThreadLogAnalyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java线程简易分析工具

这是一个简单的本地jstack/jcmd输出信息分析工具,用于分析Java应用程序的线程堆栈信息。

功能特性

1. 线程信息分析

  • jstack/jcmd数据解析:解析标准的jstack/jcmd输出,提取线程信息、状态和堆栈跟踪
  • 线程状态识别:识别线程状态(RUNNABLE、BLOCKED、WAITING、TIMED_WAITING等)
  • CPU使用率分析:基于jstack/jcmd输出中的cpu和elapsed时间数据,计算线程的CPU使用率
  • 死锁检测与分析:检测并分析Java级别的死锁信息
  • 数据统计:提供线程状态分布统计、CPU使用率统计等基本指标
  • 多视图展示
    • 线程堆栈信息视图:以卡片形式展示每个线程的详细信息
    • 线程指标表格视图:以表格形式展示线程的关键指标
    • 死锁报告视图:展示检测到的死锁信息及其线程关系
  • 线程状态筛选:可以根据线程状态筛选显示结果

2. 线程信息对比分析

  • 线程变化分析:对比多个线程信息文件,分析线程在不同时刻的CPU使用情况变化
  • 线程唯一标识:使用线程名称和tid组合作为唯一标识符,准确跟踪同名线程

依赖项

本工具为纯前端应用,不依赖任何外部服务器,但需要以下环境:

运行环境

  • 现代浏览器(Chrome、Firefox、Safari、Edge等)
  • 支持JavaScript的环境

开发依赖(如需二次开发)

  • 无特殊依赖,所有功能均为原生JavaScript实现

安装与使用

本地使用

  1. 克隆或下载本项目到本地计算机
  2. 在浏览器中打开 index.html 文件
  3. 即可开始使用工具

使用步骤

线程信息分析

  1. 准备jstack/jcmd数据

    • 在运行Java应用程序的服务器上执行以下命令获取jstack数据:
      jstack <pid> > thread_dump.txt
    • 或者使用jcmd:
      jcmd <pid> Thread.print > thread_dump.txt
    • 其中 <pid> 是Java进程的进程ID
  2. 导入数据

    • 方式一:复制线程信息输出内容,粘贴到"粘贴线程信息"文本框中
    • 方式二:点击"选择文件"按钮,上传包含线程信息数据的文本文件
  3. 开始分析

    • 点击"开始分析"按钮,系统将自动解析数据并展示分析结果
  4. 查看结果

    • 默认显示"线程堆栈信息"视图,展示每个线程的详细信息
    • 点击"线程指标表格"页签,可查看线程指标表格
    • 点击"死锁报告"页签,可查看检测到的死锁信息

线程信息对比分析

  1. 准备多个时间点的线程信息文件
  2. 导入数据
    • 选择多个线程信息文件进行上传
  3. 开始对比分析
    • 点击"开始对比分析"按钮,系统将对比分析线程在不同时刻的变化
  4. 查看结果
    • 展示线程在不同时刻的CPU使用情况变化

注意事项

  1. 本工具完全在浏览器端运行,不会上传任何数据到外部服务器,保证数据隐私
  2. 为了获得CPU使用率分析功能,jstack/jcmd数据需要包含线程的cpu和elapsed时间信息
  3. 工具目前仅支持标准的jstack/jcmd输出格式
  4. 对于非常大的jstack/jcmd文件,可能需要较长时间进行分析

技术实现

本工具采用纯前端技术实现:

  • HTML5 + CSS3 + 原生JavaScript
  • 无任何外部依赖库

所有分析功能均由前端JavaScript实现,包括线程解析、CPU使用率计算和死锁检测。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published