Thanks to visit codestin.com
Credit goes to github.com

Skip to content

one2world/flame-graph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity性能分析工具 - 函数耗时火焰图

一个用于显示Unity函数耗时的火焰图可视化工具,支持单独显示和diff对比功能。

功能特性

🔥 火焰图显示

  • 层次化显示: 以火焰图形式展示函数调用层次和耗时
  • 颜色编码: 根据耗时长短使用不同颜色标识
    • 红色: 高耗时函数 (>10ms)
    • 橙色: 中等耗时函数 (1-10ms)
    • 绿色: 低耗时函数 (<1ms)
  • 交互式操作: 支持鼠标悬停查看详情、点击选择、双击深入

📊 数据分析

  • 统计信息: 显示总样本数、函数数、最大调用深度等
  • 函数详情: 展示选中函数的详细耗时信息
  • 搜索功能: 快速定位特定函数
  • 排序选项: 支持按时间或名称排序

⚙️ 自定义配置

  • 最小耗时过滤: 隐藏低于阈值的函数调用
  • 行高调节: 自定义火焰图行高
  • 显示选项: 控制函数名称、耗时数据的显示
  • 对比模式: 支持两个数据集的diff对比

💾 数据处理

  • JSON导入: 支持拖拽或选择JSON文件导入
  • 图片导出: 将火焰图导出为PNG图片
  • 面包屑导航: 显示当前查看的函数层级路径

数据格式

工具接受以下JSON格式的树形结构数据:

{
  "name": "函数名称",
  "time": 总耗时(毫秒),
  "selfTime": 自身耗时(毫秒),
  "children": [
    {
      "name": "子函数名称",
      "time": 子函数耗时,
      "selfTime": 子函数自身耗时,
      "children": []
    }
  ]
}

字段说明

  • name: 函数或方法名称
  • time: 该函数及其所有子函数的总耗时
  • selfTime: 该函数自身的耗时(不包括子函数)
  • children: 子函数数组,可以嵌套多层

使用方法

1. 打开工具

直接在浏览器中打开 index.html 文件

2. 导入数据

  • 方式一: 点击"选择JSON文件"按钮选择数据文件
  • 方式二: 直接将JSON文件拖拽到火焰图区域
  • 方式三: 使用提供的示例数据 sample-data.json

3. 配置参数

在左侧面板中调整以下参数:

  • 最小占用时间: 设置显示的最小耗时阈值
  • 行高: 调整火焰图的行高度
  • 显示选项: 控制显示内容
  • 排序方式: 选择排序方法

4. 交互操作

  • 鼠标悬停: 查看函数详细信息
  • 单击: 选择函数并在右侧显示详情
  • 双击: 深入到该函数的子调用层级
  • 搜索: 在搜索框中输入函数名进行查找

5. 导出结果

点击"导出图片"按钮将当前火焰图保存为PNG格式

技术实现

  • 前端技术: HTML5 Canvas + JavaScript
  • 样式框架: 纯CSS实现,绿色主题设计
  • 数据处理: 原生JavaScript,支持大型数据集
  • 交互体验: 响应式设计,支持桌面和移动端

文件结构

flame-graph/
├── index.html          # 主页面文件
├── styles.css          # 样式文件
├── flame-graph.js      # 核心JavaScript逻辑
├── sample-data.json    # 示例数据文件
└── README.md          # 说明文档

浏览器兼容性

  • Chrome 60+
  • Firefox 55+
  • Safari 12+
  • Edge 79+

开发说明

核心类: FlameGraph

主要方法:

  • render(): 渲染火焰图
  • handleMouseMove(): 处理鼠标交互
  • search(): 搜索功能
  • exportImage(): 导出图片

扩展功能

  • 支持添加diff对比模式
  • 可扩展更多数据源格式
  • 支持更多导出格式

许可证

MIT License

更新日志

v1.0.0

  • 初始版本发布
  • 基础火焰图显示功能
  • 交互式操作支持
  • JSON数据导入
  • 图片导出功能

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages