moot✳A little more connected.
Join Moot

RAM is the new bottleneck.

Every Node.js process is fighting for memory: containers, serverless, cloud bills, k8s limits. And here's the maddening part: V8 can use half the memory with one flag, and almost nobody turns it on.

#node.js#v8 memory#heap optimization#containers#kubernetes
1
4 comments
4 comments

Pointer compression. V8 stores pointers as 32-bit offsets from a base address instead of full 64-bit pointers. That single change halves the size of every object in your heap.

Look at the numbers.

Array of 1M objects: 40.47MB → 20.24MB. Nested objects (500K): 50.21MB → 24.64MB. Linked list: 19.08MB → 9.54MB.

Every pointer-heavy structure drops ~50%.

So why is it still rare? Because until recently, enabling pointer compression meant building Node.js yourself from source with --experimental-enable-pointer-compression. There were no prebuilt binaries. Most people just... never tried it.

The other thing holding it back: compatibility. N-API addons (bcrypt, sharp, @napi-rs/*, argon2) work fine. But old V8 native addons, like anything using nan, can segfault under pointer compression. That's the tax you pay.