V8’s garbage collection and three JIT compilers

December 12, 2023 By Mark Otto 0

✍️ We’re prepping our annual roundup issue for next week, just before we take our Christmas break, so keep an eye out for that. We’re also considering the future. We’re exploring covering some extra server-side and non-browser topics, like Bun, Deno, serverless, etc. Stay tuned for a survey to gather your input. 🙂
__
Your editor, Peter Cooper

Node.js Weekly

▶  Node.js Configurations Masterclass — Well-known Node developer and TSC member Matteo looks at the phenomenon of so much Node code depending on the value of environment variables (and NODE_ENV, in particular, which affects the behavior of many modules) and the role that secret management can play in building robust, secure apps.

Matteo Collina

💡 There is a music bed throughout the video you might dislike, in which case Matteo’s ▶️ “NODE_ENV = production is a lie” is a shorter, music-free talk flying through things with a broader brush.

Redis with Wings – Built for Modern Node Applications — Dragonfly is a drop-in Redis® replacement with significant performance and scalability advantages. Applications built on Dragonfly deliver incredibly fast user experiences while reducing both costs and complexity.

Dragonfly

Maglev: A Serious Look at V8’s Fastest Optimizing JIT — A deep dive into how the V8 JavaScript engine (as used in Node) is getting faster thanks to work on its Maglev JIT compiler which sits in between the existing Sparkplug and TurboFan compilers (which offer distinct compilation vs execution speed tradeoffs).

The V8 Team

In other V8 spelunking news, Andy Wingo has been taking a look into progress with V8’s garbage collection. What does V8’s GC even look like these days?

The Complete Puppeteer Cheatsheet — If you want to control a headless Chrome browser from Node, Puppeteer is for you. Now we just need a Playwright one as well 😉

Mohan Ganesan

🛠 Code & Tools

Name Checker: Check if a Project Name is Taken — An online tool that checks a bunch of different package registries (npm, GitHub, GitLab, PyPI, Maven, RubyGems, Go packages, Rust crate, etc.) to see if the name is used by another project.

Todd Cooke

Auth. Built for Devs, by Devs — Easily add login, registration, SSO, MFA, user management and a bazillion more auth features to your application.

FusionAuth

Rockpack 4.2: An Alternative React App Builder — Akin to Create React App, the goal is to get project setup time as low as possible, but Rockpack holds different opinions around how far to take things and packs in a lot of ideas including server side rendering, linting, and testing.

Alex Sergey

💡 You can experience the difference in approach by running this simple ReDoS script, CTRL+Cing it once you get bored, then switching in RE2, which completes quickly 🙂