Skip to content

baobaodz/angular-build-memory-analytics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Angular 构建内存分析仪表盘 🚀

GitHub License Project Version ECharts Version

可视化分析 Angular 构建过程中的内存使用和耗时趋势,帮助开发者优化构建性能。

仪表盘截图

仪表盘截图

核心功能 ✨

可视化分析维度

时间分析 内存分析 智能洞察
📈 编译阶段耗时趋势 💾 Heap 使用峰值 🔍 自动识别极值点
📈 优化阶段耗时趋势 💾 RSS 内存峰值 📉 动态参考线
📈 总构建耗时趋势 📊 内存使用率分析 🔄 配置差异对比

交互特性

  • 双图表联动:同步显示时间与内存分析
  • 智能提示:悬停显示构建配置详情
  • 灵活布局:支持水平/垂直布局切换
  • 数据接入:支持文件拖拽/粘贴JSON
  • 弹出模式:支持自动/手动弹出详情面板
  • 数据筛选:支持多种时间范围筛选
  • 双击交互:手动模式下双击图表查看详情

快速开始 🛠️

环境要求

  • 现代浏览器(推荐 Chrome 90+)
  • Node.js 14+(仅插件开发需要)
  • Angular 12+ 项目(数据采集需要)

在线使用

# 使用示例数据快速体验
1. 点击「下载示例文件」获取测试数据
2. 拖拽上传 build-memory-records.json 或点击选择文件
3. 悬停图表查看详细分析指标
4. 切换布局模式查看不同展示效果
5. 使用筛选器查看特定时间范围的数据

本地部署

git clone https://github.com/yourname/angular-build-memory-analytics.git
cd angular-build-memory-analytics

# 开发模式(带热更新)
npx live-server --port=3000

# 生产构建
npm run build

数据采集 📦

安装监控插件

// webpack.config.js
const MemoryMonitorPlugin = require('./memory-monitor-plugin');

module.exports = {
  plugins: [
    new MemoryMonitorPlugin({
      maxRecords: 20,       // 最大记录数
    })
  ]
}

数据结构规范

{
  "timestamp": "2025-03-10 16:48:01",
  "totalTime": "3min 24s",
  "status": "success",
  "buildConfigurations": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "namedChunks": false,
    "extractLicenses": true,
    "vendorChunk": true,
    "buildOptimizer": true
  },
  "ngCacheInfo": {
    "enabled": true,
    "environment": "all",
    "path": "E:\\work\\code\\project\\.angular\\cache",
    "sizeOnDisk": "1006.24 MB",
    "effectiveStatus": "enabled"
  },
  "deviceInfo": {
    "hostname": "DESKTOP-HEK6UKM",
    "platform": "win32",
    "osType": "Windows_NT",
    "cpuModel": "Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz",
    "cpuCount": 4,
    "totalMemory": "15.89 GB",
    "freeMemory": "2.67 GB"
  },
  "data": [
    {
      "阶段": "编译",
      "阶段耗时": "21s",
      "RSS峰值 (MB)": 946,
      "Heap总峰值 (MB)": 821,
      "Heap已用峰值 (MB)": 776,
      "内存使用率峰值": "5.95%",
      "Heap使用率峰值": "94.46%"
    },
    {
      "阶段": "优化&打包",
      "阶段耗时": "1min 40s",
      "RSS峰值 (MB)": 3288,
      "Heap总峰值 (MB)": 2531,
      "Heap已用峰值 (MB)": 2467,
      "内存使用率峰值": "20.21%",
      "Heap使用率峰值": "97.44%"
    }
  ]
}

使用指南 📖

数据输入方式

  • 文件上传:点击或拖拽上传JSON文件
  • 文本粘贴:点击切换按钮,粘贴JSON数据到文本框

交互功能

  • 布局切换:点击"布局"按钮在横向/竖向布局间切换

  • 弹出详情

    :选择自动/手动模式显示详情面板

    • 自动模式:悬停图表自动显示详情
    • 手动模式:双击图表显示详情
  • 数据筛选

    :选择不同时间范围查看数据

    • 全部/最早7天/最早15天/最早10次
    • 最近7天/最近15天/最近10次
  • 图表联动:两个图表同步显示相同时间点数据

详情面板

  • 显示构建配置信息
  • 显示Angular缓存信息(如果有)
  • 显示设备信息(如果有)
  • 自动高亮显示配置变更

性能优化建议 ⚡

内存优化策略

# 提升Node内存限制
NODE_OPTIONS="--max-old-space-size=4096" ng build --prod

# 启用并行构建
ng build --parallel --threads=4

构建配置优化

// angular.json
{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "cli": {
    "cache": {
      "enabled": true,
      "path": ".angular-cache",  // 缓存存储路径(可选)
      "environment": "all"       // 缓存所有环境(包括生产)
    }
  },
  "projects": {
    "your-project-name": {
      // ...其他配置
        
    }
  }
}

贡献指南 🤝

开发流程

  1. 创建特性分支
git checkout -b feature/enhance-charts
  1. 提交变更说明
git commit -m "feat: add 3D visualization support"
  1. 推送并创建 Pull Request

代码规范

  • TypeScript 4.0+ 语法
  • ECharts 5.x 图表规范
  • Airbnb JavaScript 代码风格

许可协议 📜

本项目采用 MIT License,可自由用于商业项目。使用请保留原始署名。


反馈与支持创建 Issue | 赞助项目

About

Memory record analysis and chart reporting for Angular builds

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published