Repolode
membrowse

membrowse/membrowse-action

基于 ELF 文件分析嵌入式固件的 Flash 与 RAM 占用,并可在 PR 中评论内存变化的 GitHub Action 与命令行工具。

Star
50
Fork
2
未关闭 Issue
0
最近提交
19小时前

这是什么?

MemBrowse 用于测量嵌入式固件镜像占用的 Flash 和 RAM 空间。它读取 ELF 文件与链接脚本,将符号映射回源文件,按内存区域统计使用量,并列出占用最大的符号。命令行工具可在本地运行且无需账号,适合开发者在自己的机器上检查构建结果。

在 CI 中,GitHub Action 会把每次分析结果上传到 MemBrowse 服务并保留跨提交的历史记录。Pull Request 可以收到展示内存变化的评论,超出预设预算时还可以让构建失败。这些云端功能需要免费的 API key。

工具支持任何能输出带 DWARF 调试信息 ELF 文件的工具链,包括 ARM、Xtensa 和 RISC-V。它可解析 GNU LD 链接脚本、IAR ICF 文件和 SEGGER Embedded Studio 工程文件,并根据文件内容自动识别格式。

核心功能

  • 01根据 ELF 文件按内存区域统计 Flash 与 RAM 占用
  • 02将符号映射回其定义所在的源文件
  • 03支持读取 GNU LD、IAR ICF 与 SEGGER emProject 的内存布局
  • 04通过 GitHub Action 在 Pull Request 中发布内存变化评论
  • 05内存超出预算时可让 CI 构建失败

适用场景

  • 在代码评审中发现固件体积的回归
  • 检查新功能是否仍能放入单片机的 Flash
  • 跟踪嵌入式项目在不同提交间的内存变化
  • 无需注册账号即可在本地分析内存占用

快速上手

  1. 1

    从 PyPI 安装 MemBrowse 命令行工具

    pip install membrowse
  2. 2

    使用链接脚本在本地分析你的固件 ELF 文件

    membrowse report build/firmware.elf "src/linker.ld"
  3. 3

    可选:添加 GitHub Action 工作流以在 CI 中跟踪内存

使用前须知

  • PR 评论、历史跟踪和 CI 预算门控需要免费的 MemBrowse API 密钥和账户。
  • 采用 GPL-3.0 许可证,这是一种 copyleft 许可证,可能限制某些闭源商业用途。

收录于专题

标签

常见问题

membrowse-action 是什么?
基于 ELF 文件分析嵌入式固件的 Flash 与 RAM 占用,并可在 PR 中评论内存变化的 GitHub Action 与命令行工具。 MemBrowse 用于测量嵌入式固件镜像占用的 Flash 和 RAM 空间。它读取 ELF 文件与链接脚本,将符号映射回源文件,按内存区域统计使用量,并列出占用最大的符号。命令行工具可在本地运行且无需账号,适合开发者在自己的机器上检查构建结果。
membrowse-action 可以免费使用吗?用的什么许可证?
membrowse-action 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
membrowse-action 还在维护吗?
活跃维护中。membrowse-action 最近一次提交是在 2026年11月6日。
membrowse-action 适合用来做什么?
在代码评审中发现固件体积的回归 检查新功能是否仍能放入单片机的 Flash 跟踪嵌入式项目在不同提交间的内存变化 无需注册账号即可在本地分析内存占用
membrowse-action 怎么安装和运行?
从 PyPI 安装 MemBrowse 命令行工具: pip install membrowse 使用链接脚本在本地分析你的固件 ELF 文件: membrowse report build/firmware.elf "src/linker.ld" 可选:添加 GitHub Action 工作流以在 CI 中跟踪内存
在哪里获取 membrowse-action?
源代码和安装说明在 GitHub 上:https://github.com/membrowse/membrowse-action

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目