rust-webpack-template icon indicating copy to clipboard operation
rust-webpack-template copied to clipboard

Rust + WASM vs JS performance

Open helabenkhalfallah opened this issue 4 years ago • 2 comments

Summary

Hello, I want to use WASM in my frontend projects but comparing Rust + WASM performance vs JS, I always get JS more faster :

My project : https://github.com/helabenkhalfallah/rust-react-wasm-js

I tried also many optimization flags combination, like :

[profile.release]
# This makes the compiled code faster and smaller, but it makes compiling slower,
# so it's only enabled in release mode.
lto = true

[profile.dev]
lto = true
opt-level = 3

Benchmarks : 1- Filter a big array to keep only numbers (4000 records) 2- Sort, map, filter a big array (about 10000 records) 3- Rust + reqwest vs JS + axios (download about 7800 records)

Benchmarks results : image

WASM isn't suitable for these kinds of tasks (usual website tasks) ? If yes where WASM + Rust shine (I'm confused about when to use?) Else is there others suggestions for optimization ?

Thanks :)

helabenkhalfallah avatar Jul 19 '20 16:07 helabenkhalfallah

Hello, have you any suggestions how can I enhance performance and reduce bundle size ? Why Rust + Wasm are slower than JS, is this due to memory read/write and wasm boot time ? Could you help me to go further more in my tests and adoption. Thanks.

helabenkhalfallah avatar Jul 23 '20 05:07 helabenkhalfallah

this problem maybe due to WasmPackPlugin,this plugin will build the wasm in debug mode by default, until you set the

forceMode: "production"

explicitly. If you directly run "wasm-pack build", it will build in production mode, so there is a huge gap between these two testing result. You can turn this setting and have a try. This bug bothered me whole day. WTF! Hope it can help you!

alucardpj avatar Sep 10 '21 13:09 alucardpj