Breaking the WASM/JS communication performance barrier
1–10 of 34 posts
Re: Breaking the WASM/JS communication performance barrier
#2I'd love for some native way of handling UTF-8 in JavaScript and the DOM (no, TextEncoder/TextDecoder do not count). Even a kind of "mode" you could choose for the whole page would be a huge step forward for the "compile native language to WASM + web" thing.
Re: Breaking the WASM/JS communication performance barrier
#3The issue comes down to the fact that even if your WASM code can return a utf16 buffer, to use it as a string in JS code the engine needs to make a copy at some point. The TextDecoder api does a first good job of making this efficient, ensuring there is just a single copy, but it's still overhead.
Ideally there should be a way to wrap an array buffer with a "String View", offloading the responsibility of ensuring its utf16 to the WASM code, and there being no copy made. But that brings a ton of complexities as strings need to be immutable in js, but the underlying buffer could still be changed.
Re: Breaking the WASM/JS communication performance barrier
#4https://www.nhatcher.com/post/should_i_import_or_should_i_ro...
The code is a bit outdated, but the principle of linking against the browser implementation stands
Re: Breaking the WASM/JS communication performance barrier
#5Re: Breaking the WASM/JS communication performance barrier
#6How does the performance compare to projects like Wasmtime?
Re: Breaking the WASM/JS communication performance barrier
#7The whole UTF-8 vs UTF-16 thing makes this way more messy than it should be. I'd love for some native way of handling UTF-8 in JavaScript and the DOM (no, TextEncoder/TextDecoder do not count). Even a kind of "mode" you could choose for the whole page would be a huge step forward for the "compile native language to WASM + web" thing.
Re: Breaking the WASM/JS communication performance barrier
#8Re: Breaking the WASM/JS communication performance barrier
#9The whole UTF-8 vs UTF-16 thing makes this way more messy than it should be. I'd love for some native way of handling UTF-8 in JavaScript and the DOM (no, TextEncoder/TextDecoder do not count). Even a kind of "mode" you could choose for the whole page would be a huge step forward for the "compile native language to WASM + web" thing.
Re: Breaking the WASM/JS communication performance barrier
#10The whole UTF-8 vs UTF-16 thing makes this way more messy than it should be. I'd love for some native way of handling UTF-8 in JavaScript and the DOM (no, TextEncoder/TextDecoder do not count). Even a kind of "mode" you could choose for the whole page would be a huge step forward for the "compile native language to WASM + web" thing.
100%. If we could get a DomString8 (8-bit encoded) interface in addition to the existing DomString (16-bit encoded) and a way to wrap a buffer in a DomString8, we could have convenient and reasonably performant interfaces between WASM and the DOM.