面向嵌入式设备的实时操作系统,符合 POSIX 标准,覆盖 8 位到 64 位微控制器。
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
从 PyPI 安装 MemBrowse 命令行工具
pip install membrowse - 2
使用链接脚本在本地分析你的固件 ELF 文件
membrowse report build/firmware.elf "src/linker.ld" - 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 数据每日更新。
相关项目
面向微控制器等资源受限设备的精简 Python 3 实现,并提供硬件外设访问模块。
乐鑫官方的 ESP32 等 SoC 嵌入式开发框架,支持 Windows、Linux 和 macOS。
跨平台的嵌入式开发命令行工具与构建系统,涵盖库管理、多种开发板与框架、调试和单元测试。
面向嵌入式系统的开源跨平台 USB 主机与设备协议栈,支持 50 多种 MCU 系列。
一个用 Zig 语言构建嵌入式应用的工具箱,提供硬件抽象层与芯片、板级支持。