WASM模块体积估算器
根据源语言、编译目标、优化级别和所选功能模块,估算 WebAssembly 模块的最小/典型/最大体积区间,基于经验数据,不解析真实文件。
免费在线工具
Loading…
使用说明
- 选择编译源语言(Rust、C++/Emscripten、Go/TinyGo、AssemblyScript 或 Zig)。
- 选择编译目标(Web/Browser、Standalone 非浏览器、WASI)和优化级别(-O0 到 -Oz)。
- 在“功能模块”区域勾选你的项目会用到的能力(如 JSON 解析、HTTP 客户端、加密哈希、图像处理等),可多选。
- 点击“估算体积”,查看最小/典型/最大体积区间、Gzip 压缩后估算体积,以及各构成部分的占比分解。
- 点击“加载示例数据”可快速查看一个 Rust + JSON/HTTP/加密 + wasm-bindgen 组合的估算示例。
功能介绍
- 基于内置的经验数据表(各语言运行时基础开销、12 种功能模块体积增量、目标平台开销、优化级别体积系数)计算体积区间,不上传或解析任何真实 wasm 文件。
- 覆盖 5 种源语言(Rust、C++/Emscripten、Go/TinyGo、AssemblyScript、Zig)、3 种编译目标、6 档优化级别(-O0 至 -Oz)。
- 12 个可勾选的功能模块(JSON、HTTP、加密/哈希、图像处理、数学运算、字符串/正则、日期时间、压缩、编码转换、随机数、YAML、wasm-bindgen 绑定)及各自的体积增量。
- 输出最小/典型/最大三档体积估算,并附加约 50% 比例的 Gzip 压缩后估算体积。
- 以字符方块条形图形式展示体积构成分解,直观看出各部分占比。
- 结果页面明确提示“此为经验估算,仅供参考”,不代表真实编译产物体积。
使用场景
技术选型前预估 WASM 包体积
在决定用 Rust 还是 AssemblyScript 写一个浏览器端 WASM 模块前,先估算不同语言在相近功能下的体积差异,辅助技术选型。
评估优化级别对体积的影响
想知道从 -O2 切到 -Oz 大概能省多少体积,调整优化级别下拉框即可立即看到估算值变化。
规划功能模块裁剪
项目体积超出预算时,通过逐个取消勾选功能模块(如去掉图像处理、YAML解析),观察估算体积下降幅度,决定裁剪优先级。
团队立项阶段的体积预算沟通
项目早期还没有代码,需要给团队一个“大概多大”的体积预期用于技术方案评审,用本工具快速产出一个量化区间。
常见问题
这个工具是解析我上传的 wasm 文件吗?
不是。它不接受文件上传,只根据你选择的语言、目标平台、优化级别和功能模块勾选,从内置经验数据表计算出一个估算区间,与真实编译产物无关。
估算结果准确吗?
这只是基于公开经验值的粗略估算,实际体积会因具体代码实现、依赖库版本、编译器版本等差异很大,仅供技术选型阶段参考,不能替代真实编译后测量。
Gzip 压缩后体积是怎么算的?
按典型体积的 50% 简单估算,实际 Gzip 压缩率因内容而异(wasm 二进制的压缩率通常在 40%-60% 之间),仅作粗略参考。
为什么同一个功能模块在不同语言下体积增量一样?
当前模型里功能模块的体积增量表是语言无关的固定值,未针对每种语言单独校准,这是简化估算模型的已知局限。