|
|
|
|
|
by adrian17
157 days ago
|
|
> Even a basic hello world in rust will set you back a few megabytes compared to a the tens of bytes it takes in javascript. That's definitely not true. A debug build of a "hello wasm-bindgen" style Rust program indeed takes ~2MB, but most of that is debug into; disabling that and/or stripping gets it down to 45-80kB (depending how I did it). And a release build starts at 35kB, and after `wasm-opt -O` gets down to 25kB. AFAIK most of the remaining space is used by wasm-bindgen boilerplate, malloc and panic machinery. ...and then, running wasm-bindgen to generate JS bindings somehow strips most of that boilerplate too, down to 1.4kB. Side note, I never understood how wasm-opt is able to squeeze so much on top of what LLVM already did (it's a relatively fast post-build step and somehow reduces our production binaries by 10-20% and gives measurable speedups). |
|