---
title: "V8's garbage collection and three JIT compilers"
publication: "Node Weekly"
issue: 514
published_at: "2023-12-12"
canonical_url: "https://nodeweekly.com/issues/514"
---

Plus why NODE_ENV=production is a lie, and VS Code gets some Node.js goodies. |        

#​514 — December 12, 2023 

[Read on the Web](https://nodeweekly.com/issues/514)   

✍️ 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_ 

Together with [![Dragonfly\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_1296,h_236/e_make_transparent/co_white,e_outline:17/s0zmgewhr5q9s8jl1gfd.png)](https://www.dragonflydb.io/cloud?utm_campaign=cooperpress_nice_dec23&utm_source=ppc&utm_medium=newsletter)  

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/esklgmezz1jgicggl070.jpg)](https://www.youtube.com/watch?v=kVnh_tNYqxk)  

▶[Node.js Configurations Masterclass](https://www.youtube.com/watch?v=kVnh_tNYqxk) — 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"](https://www.youtube.com/watch?v=HMM7GJC5E2o) is a shorter, music-free talk flying through things with a broader brush.  [![\](https://copm.s3.amazonaws.com/e544190d.png)](https://www.dragonflydb.io/cloud?utm_campaign=cooperpress_nice_dec23&utm_source=ppc&utm_medium=newsletter) 

[Redis with Wings - Built for Modern Node Applications](https://www.dragonflydb.io/cloud?utm_campaign=cooperpress_nice_dec23&utm_source=ppc&utm_medium=newsletter) — 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 sponsor   

[Maglev: A Serious Look at V8’s Fastest Optimizing JIT](https://v8.dev/blog/maglev) — 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.](https://wingolog.org/archives/2023/12/07/the-last-5-years-of-v8s-garbage-collector) _What does V8’s GC even look like these days?_  

_IN BRIEF:_  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hmdszirfcgzcdaxmt45y.jpg)](https://code.visualstudio.com/updates/v1_85#_javascript-debugger)  

- The [latest VS Code release](https://code.visualstudio.com/updates/v1_85) has many goodies including being able to **drag tabs into their own new windows**, TypeScript 5.3, a V8 heap snapshot visualizer _(as above)_, and _Go to Symbol in Workspace_ now excludes symbols from `node_modules` by default.
- 🔐 The OpenJS Foundation shares its [latest Node.js security progress report](https://openjsf.org/blog/nodejs-november-progress-report), covering all sorts of things Node.js security folks have been up to recently.
- In a strong sign that we're not going to let Rust take over _all_ the JavaScript tooling jobs, the folks behind Prettier have been [doing some serious work on improving its performance](https://prettier.io/blog/2023/11/30/cli-deep-dive.html) while sticking to JavaScript.
- It's the final week to [take the State of JavaScript 2023 survey.](https://survey.devographics.com/en-US/survey/state-of-js/2023)
- The popular 'ngrok' ingress/reverse proxy platform has [launched a new Node.js SDK](https://ngrok.com/blog-post/ngrok-js) so you can make a service available through them in a single function call.   

[The Complete Puppeteer Cheatsheet](https://proxiesapi.com/articles/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   

▶[Deploying Node.js with Google's Duet AI](https://www.youtube.com/watch?v=t_gy2V1ofv0) — _Duet AI_ is Google’s AI-based assistive agent that works both in the IDE and within Google Cloud. For now. 

Google Cloud   

[Get Started with Node.js 20 on Red Hat OpenShift](https://developers.redhat.com/blog/2023/12/01/get-started-nodejs-20-red-hat-openshift) — Red Hat has released a fully-supported Node 20 container image. 

Lucas Holmquist (Red Hat)   

[Job Scheduling in Node with Agenda: A Beginner's Guide](https://betterstack.com/community/guides/scaling-nodejs/node-scheduled-tasks/) 
Stanley Ulili   

[Node.js, TypeScript and ESM: It Doesn't Have to Be Painful](https://dev.to/a0viedo/nodejs-typescript-and-esm-it-doesnt-have-to-be-painful-438e) 
Alejandro Oviedo    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/roljbviqz0tut7howhal.jpg)](https://namechecker.vercel.app/)  

[Name Checker: Check if a Project Name is Taken](https://namechecker.vercel.app/) — 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](https://fusionauth.io?utm_source=gonewsletter&utm_medium=newsletter&utm_campaign=features) — Easily add login, registration, SSO, MFA, user management and a bazillion more auth features to your application. 

FusionAuth sponsor   

[Croner 8.0: 'Cron' for JavaScript and TypeScript](https://croner.56k.guru/) — Trigger functions upon the schedule of your choice using the classic [cron syntax.](https://en.wikipedia.org/wiki/Cron#CRON_expression) Works in Node, Deno, Bun _and_ the browser, across time zones, offers error handling and overrun protection. 

Hexagon   

[Rockpack 4.2: An Alternative React App Builder](https://github.com/AlexSergey/rockpack) — 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   

[npm-check-extras: Check for Outdated and Unused Dependencies](https://www.npmjs.com/package/npm-check-extras) — A CLI app to check for outdated and unused dependencies and run update/delete over those you select. 

akgondber   

[p-map 7.0: Map Over Promises Concurrently](https://github.com/sindresorhus/p-map) — Differs from `Promise.all()` in that you can control the concurrency and whether or not to stop iterating when there’s an error. 

Sindre Sorhus      

📰 Classifieds   

👉 [Free Temporal 101 & 102 Courses in TypeScript](https://t.mp/3TaiQ9Z): Learn Temporal's open source key concepts and best practices with our self-paced training. 

--- 

💻 At [Bosch](https://www.bosch.com/careers/why-bosch/collaboration-and-leadership/?utm_campaignid=node&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=classifieds&utm_content=teamback), we invent technology for life. Join in and get inspired by the perspectives of our community around the globe. [Learn more](https://www.bosch.com/careers/why-bosch/collaboration-and-leadership/?utm_campaignid=node&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=classifieds&utm_content=teamback).      

[node-re2: Bindings for Google's RE2 Regular Expression Library](https://github.com/uhop/node-re2) — [RE2](https://en.wikipedia.org/wiki/RE2_%28software%29) is a C++ finite-state machine-based regex library that takes a different approach to PCRE. It'll appeal to you if you want to avoid exponential runtime issues with certain regexes/ReDOS or so-called ‘evil input’. 

Eugene Lazutkin   

💡 You can experience the difference in approach by running [this simple ReDoS script](https://gist.github.com/watson/7682ee718b9cf4aa2a5a605a3fb4a552), CTRL+Cing it once you get bored, then switching in RE2, which completes quickly :-)  

- [Is Text or Binary? 9.3](https://github.com/bevry/istextorbinary) – Is a filename/buffer is text or binary data?
- [SendGrid Node.js Client 8.1](https://github.com/sendgrid/sendgrid-nodejs) – The official Twilio SendGrid API.
- [Marked 11.1](https://github.com/markedjs/marked) – Markdown parsing and generation.
- [SVGO 3.1](https://github.com/svg/svgo) – Node.js-powered SVG optimizer.
- [NestJS Throttler 5.1](https://github.com/nestjs/throttler) – Rate limiting module for NestJS.
- [Article Extractor 8.0.4](https://github.com/extractus/article-extractor) – Extract article text from pages.
- [pnpm 8.12](https://github.com/pnpm/pnpm) – Fast, efficient package manager.
- [ws 8.15](https://github.com/websockets/ws) – Fast Node.js WebSocket library.
- [np 9.2](https://github.com/sindresorhus/np) – A better `npm publish`
- 📖 [OpenComic 1.0](https://github.com/ollm/OpenComic) – Node-powered comic/manga-reader app.    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address](https://nodeweekly.com/edit_subscription/*|UID|*).
