Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code
Talkat USENIX ATC '19 · on Wednesday, 2019-07-10· at 12:20· USENIX ATC Track II: Grand Ballroom VII–IX·
summary
Built Browsix-Wasm to run unmodified Unix programs in the browser and benchmarked them using SPEC CPU; WebAssembly binaries run about 45% slower on Firefox and 55% slower on Chrome, with peak slowdowns of 2.08× and 2.5×. Root causes include JIT codegen limits (poor register allocation and missed optimizations), reserved registers for GC roots, and mandatory stack/indirect-call checks; engineering fixes (e.g., file-append buffering) cut filesystem overhead ~5× and lowered that component to ~0.2%–1.1% of runtime.
AI-written summary · about
chapters (11)
- 0:00The evolution of web speed
- 1:42Introduction to WebAssembly
- 3:28WebAssembly architecture
- 4:35Benchmark selection challenges
- 6:12Implementing browser system calls
- 7:52Performance optimization
- 8:54Benchmark infrastructure
- 10:03JIT compilation analysis
- 12:17Performance counter results
- 14:34Summary of findings
- 15:24Q&A and conclusion








