SuperAPI AI 工具集

binary-size-analysis

通用与其它

查看项目

更新于 10-16 09:54

技能介绍

用途:分析 hermesvm 共享库在指定 git 提交区间内的二进制体积变化,输出包含逐提交体积和显著增减汇总表的 Markdown 报告。

主要能力:区分 BUILD 与 SKIP 提交;按默认 CMake 配置(MinSizeRel、HADES GC、HEAP_HV_PREFER32、ALLOW_JIT=2 等)逐提交构建 ninja hermesvm;用 ALLOC 段大小之和作为体积指标(Linux 用 readelf -SW,macOS 用 otool -l),而非文件大小,以排除对齐填充和被 strip 的非发布段;默认启用父提交验证;对增量不小于 3000 字节的提交运行 bloaty 分节差异。

使用方式:输入基提交与结束提交(如 b48b6cc..HEAD),可选附加 CMake 参数。先确认处于 git 仓库(git rev-parse --is-inside-work-tree),需要 bloaty 时用 git clone https://github.com/google/bloaty.git ~/bloaty 构建。每轮构建前必须先运行 cmake -B 以检测新增/删除源文件。结果写入仓库根目录 hermesvm_size_analysis.md,结束后恢复原分支。

适用场景:定位引起 hermesvm 体积增长的提交、排查体积回归、为提交区间生成体积报告。

限制:仅在 git 检出下可用,不适用于 Sapling/Mercurial;父提交验证默认开启但约使构建时间翻倍;每个提交约需 20-30 秒,500 个以上提交可能耗时 3-5 小时;接近 HEAD 的构建失败较常见,会记录 BUILD_FAIL 并继续;未提供具体收费、价格或额外平台信息。