WebAssembly 实验场

在您的浏览器中本地运行

每种数值类型(i32、i64、f32、f64)各有一个导出,从 add(20, 22) 开始。

WAT 编辑器

WAT 源码WAT 编译器(WABT)只在编译时下载。错误会显示行号和列号。
高级设置

允许范围:1,000–60,000

允许范围:1–10,000,000

允许范围:100–30,000

什么是 WebAssembly?
一种紧凑的二进制格式,浏览器可在 JavaScript 旁以接近原生的速度运行它。模块会导出可供调用的函数。
什么是 WAT?
WebAssembly 文本格式,即模块的可读形式。每条指令都与二进制直接对应。
点击“编译”后会发生什么?
WABT 会在此浏览器中将 WAT 转换为 .wasm 二进制。模块经过验证和检查后,其导出函数即可在隔离的 Worker 中运行。
我的代码会离开浏览器吗?
不会。编译、检查和运行都在本地完成。只有首次编译时会下载 WAT 编译器。
检查、运行和分析 WASM

上传 .wasm 模块、编写 WAT 或加载示例。系统会先验证并检查模块:导入、导出、带签名的函数、内存(页)、表、全局变量和自定义段。之后即可用带类型的参数运行受支持的导出,并进行基准测试、停止和重新实例化。

数值 ABI 与严格导入

运行器只调用参数为 i32、i64、f32 或 f64 且最多一个结果的导出。i64 全程使用 BigInt,大整数也能保持精确。字符串、指针、引用、SIMD、WASI 和多返回值会显示在检查器中,但不会执行。导入绝不会被隐式提供:由你选择返回零的数值 stub、置零的全局变量或全新的内存和表;未解析的导入会阻止实例化并列出名称。

如实测量的基准测试与内存

运行和基准测试在专用 Worker 中进行,并设有迭代上限、时间上限和超时;停止会终止 Worker,重置实例则从干净状态开始。结果显示实例化时间、执行时间、平均值、中位数、nearest-rank P95 和每秒操作数。极快的调用会分批计时,使每个样本高于计时器分辨率。线性内存以 64 KiB 页为单位,显示初始、当前和观测到的峰值大小以及增长次数。

为什么没有 CPU %、GC 次数或 FPS

浏览器不提供单个任务的 CPU 使用率或垃圾回收计数,函数调用也不会渲染帧,因此这些值会标记为未测量或不适用,而不是凭空编造。页面 JS 堆和长任务数据仅在浏览器支持时显示。长时间调用、边界开销、反复的内存增长或未解析导入等发现,都会附上作为依据的测量值。

隐私与限制

模块、WAT 源码、参数和结果都留在此浏览器中,不会上传,分析工具也不会收到模块内容。上传限一个 10 MiB 以内的 core 模块,WAT 上限为一百万个字符。WAT 编译器(WABT)只在编译 WAT 时下载。计时结果会因浏览器、设备和 JIT 阶段而异,请在同一台机器上比较。

CodingTool 已正式上线于

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools