Curated internet, served daily

Janet's 32-Bit Pointer Test: Real RAM Win, Missing Packaging

Janet built with 32-bit pointers saved about 20 percent of its memory and lost 50 percent of its speed; the x32 ABI would keep the cache win without that cost, but Arch doesn't compile it in and Debian ships it disabled.

A Janet build with 32-bit pointers on a 64-bit machine used about 20 percent less memory and ran 50 percent slower. The build hijacked Janet’s own flags with a fake cc that calls gcc with -m32, run on Arch with lib32-glibc. The RAM drop is real. The CPU bill arrives immediately.

That -m32 path is not the x32 ABI. x32 keeps the 64-bit instruction set and shrinks only the pointers, which is where the cache win lives. It also needs a kernel built with x32 support: Debian ships it disabled behind a boot flag, and Arch does not compile it in.

A Mastodon deployment on x32 went from 650 MB to 350 MB, and the ceiling for pointer-heavy heaps is close to half. Most software compiles fine for x32; someone still has to build and ship it. Memory is my constraint on small boxes, so I’d watch this rather than chase it. Check your kernel first: grep X86_X32 /boot/config-$(uname -r).

← Back to Daily