4 ms·
Oh tailscale! Hi! And thanks for this! Yeah, my Wasm uses bulk memory instructions which wazero bottoms out to Go's runtime.memmove: memory.init, memory.copy,
by ncruces 2y ago
Oh tailscale! Hi! And thanks for this!
Yeah, my Wasm uses bulk memory instructions which wazero bottoms out to Go's runtime.memmove: memory.init, memory.copy, etc are all just runtime.memmove; memory.fill fills a small segment, then runtime.memmove it to exponentially larger segments; etc.
memcmp is probably slow though, the musl implementation is really naive. I shall try a simple optimization.
- ncruces 2y agoI got some nice 10x improvements, but they didn't really show up in benchmarks of SQLite. I'm guessing it's mostly memset and memcpy that matter. https://github.com/ncruces/go-sqlite3/issues/257#issuecomment-2780645879 https://github.com/ncruces/go-sqlite3/issues/257#issuecommen...