4 ms·
> ...enough insights of how much better/faster Deno is We moved our Deno project to Node because of lack of lower-level APIs on Deno's Conn interfaces [0][1],
by ignoramous 5y ago
> ...enough insights of how much better/faster Deno is
We moved our Deno project to Node because of lack of lower-level APIs on Deno's Conn interfaces [0][1], but otherwise for our use-case (lots of tiny HTTPS connections) Deno absolutely blew Node out-of-the-water. Even at p50 (100tps) Deno (v1.18) was 10x faster than Node (v17.x) [2]
RAM wise, I found Deno (v1.18+) use 10M or so higher for the same code-base.
DevEx wise, Node is miles away from Deno, but it might get there in-time, or it might not [3]. I'd imagine, what may also work in Deno's favour in terms of IO-bound workloads, is the underlying tokio layer (vs libuv in Node).
API wise, Deno (comparatively) feels quite raw.
[0] https://github.com/denoland/deno/issues/13636 https://github.com/denoland/deno/issues/13636
[1] https://github.com/denoland/deno/issues/9109 https://github.com/denoland/deno/issues/9109
[2] https://github.com/nodejs/undici/issues/1203#issuecomment-1033019530 https://github.com/nodejs/undici/issues/1203#issuecomment-10... | Explanation: https://github.com/RafaelGSS/nodejs-bench-operations/pull/3#issuecomment-1066872997 https://github.com/RafaelGSS/nodejs-bench-operations/pull/3#...
[3] https://www.youtube-nocookie.com/embed/M3BM9TB-8yA https://www.youtube-nocookie.com/embed/M3BM9TB-8yA
- deleted 5y ago[deleted]
- inglor 5y agoIf anyone wants to work on this (make web streams faster in Node) it'd be welcome. The main reason web streams are slower in Node is a lot less work has been put into making them fast. They're mostly seen as an interop layer.
- laurencerowe 5y agoI think it could make sense to implement lower-level APIs in Rust and then expose higher level APIs to JavaScript so that connections to upstream services can be shared across a pool of JavaScript Workers. When running NodeJS at scale we had to add proxy servers to pool connections to upstream services which had been designed for smaller numbers of more highly utilized connections from large multithreaded Java application servers.