Hacker News new | ask | show | jobs
by apignotti 101 days ago
We are working on exactly this: https://browserpod.io

For a full-stack demo see: https://vitedemo.browserpod.io/

To get an idea of our previous work: https://webvm.io

1 comments

How’s performance relative to bare metal or hardware virtualization?
I ran two experiments:

~20x slower for a naive recursive Fibonacci implementation in Python (1300 ms for fib(30) in this VM vs 65ms on bare metal. For comparison, CPython directly compiled to WASM without VM overhead does it in 140ms.)

~2500x slower for 1024x1024 matrix multiplication with NumPy (0.25 GFLOPS in VM vs 575 GFLOPS on bare metal).

This is not correct. You are using WebVM here, not BrowserPod.

WebVM is based on x86 emulation and JIT compilation, which at this time lowers vector instructions as scalar. This explains the slowdowns you observe. WebVM is still much faster than v86 in most cases.

BrowserPod is based on a pure WebAssembly kernel and WebAssembly payload. Performance is close to native speed.

I see. I thought they were the same and https://vitedemo.browserpod.io/ failed to load, so I was not able to test there.
Demo works as expected for me, please share information if possible or join our Discord for further help: https://discord.leaningtech.com
I dug a bit deeper. The cause was that navigator.storage.getDirectory() is not available in Firefox private browsing mode.

The performance is pretty amazing. fib(35) runs in 60ms, compared to 65ms in NodeJS on Desktop.

But I can't find a shell. Is there only support for NodeJS at the moment?