This will be an unfair question given the limitations of a browser sandboxed compiled to wasm, but do you have benchmarks comparing this to node hosted on the same machine?
We test performance internally constantly, and we plan to soon publish a benchmarking repository.
Depending on the workload the performance is actually very close to native, I'll give a few highlights.
* Node.js C++ code is compiled to WebAssembly and as such is very close to native speed
* Node.js JavaScript payloads are executed directly by the browser engine. There is some additional overhead in some scenarios, but it's not large and we expect to further improve this down the line.
* There is proper multi-process support via WebWorkers. Multiple node processes can actually run in parallel on top of the same WebAssembly kernel.
There are a few areas that we need to improve still, to make an example we are hitting some of the limitations of IndexedDB for data persistent and we are experimenting with the OPFS API to squeeze some more performance. This is tricky since performance with OPFS is very dependent on the browser at this tie.
Our kernel itself still need some work, as concurrency in some scenarios is limited by overly extensive locking. We expect to make significant progress on these problems as well over the next weeks and months.
Moreover, the most direct alternative to BrowserPod is not a local sandbox, but a cloud provisioned one. Of course cloud performance depends on how much the platform owner is willing to spend, but we expect BrowserPod to be actually _much_ faster than common cloud options especially on the cheaper tiers.
We plan to publish benchmark against the main cloud sandbox providers as well in the future.
[Edited to mention the comparison against cloud VMs]
apignotti|12 days ago
Depending on the workload the performance is actually very close to native, I'll give a few highlights.
* Node.js C++ code is compiled to WebAssembly and as such is very close to native speed
* Node.js JavaScript payloads are executed directly by the browser engine. There is some additional overhead in some scenarios, but it's not large and we expect to further improve this down the line.
* There is proper multi-process support via WebWorkers. Multiple node processes can actually run in parallel on top of the same WebAssembly kernel.
There are a few areas that we need to improve still, to make an example we are hitting some of the limitations of IndexedDB for data persistent and we are experimenting with the OPFS API to squeeze some more performance. This is tricky since performance with OPFS is very dependent on the browser at this tie.
Our kernel itself still need some work, as concurrency in some scenarios is limited by overly extensive locking. We expect to make significant progress on these problems as well over the next weeks and months.
Moreover, the most direct alternative to BrowserPod is not a local sandbox, but a cloud provisioned one. Of course cloud performance depends on how much the platform owner is willing to spend, but we expect BrowserPod to be actually _much_ faster than common cloud options especially on the cheaper tiers.
We plan to publish benchmark against the main cloud sandbox providers as well in the future.
[Edited to mention the comparison against cloud VMs]