Anyone using x32?
Just wondering whether anyone here has experience using the x32 ABI, seems perfect for tiny NAT VMs. I've so far only made a static x32 build of rust_analyzer that saw on average a 27% reduction in memory usage, so seems like depending on the workload there are quite some savings to be had.
Comments
I was thinking about making a 32 bit Alpine template for TierHive after a customer gave me some data, looks like I could probably push that down to single figure MB's baseline, maybe low double figures.
My concern is any overhead just shifted to the HV making it pointless, I was ging to make a blog post about it, it is on my todo list.
TierHive - Hourly VPS - NAT Native - /24 per customer - DE, UK, SG, CA, USA x4, FR x2, AU, PL, NL, JP
FREE tokens on sign up, try before you buy. | Static Hosting Free for life: https://tierhive.com/static-hosting/
I ran all of my nameservers with low ram under x32 (i686 on OpenBSD). The binaries are smaller too.
"It's a hard life- to be a stick insect." - Karl Pilkington
Oh, I meant the Linux x32 ABI (x86_64 but only 32-bit pointers), i686 is nice for this but from what I've seen you get quite the performance benefit from using all 16 GPRs and especially passing function arguments in registers instead of the stack
Interesting, straight up i686 or x32? From what I've read the Alpine x32 efforts kind of stalled out. Also what do you mean with the overhead shifting to the HV? For x32 the HV shouldn't really be able to tell since it's a standard 64-bit kernel, the changes are only really visible in userspace, could even run x32 and x86_64 binaries side by side (though shared libraries complicate this),
Right. I was talking cross purposes, sorry. The OpenBSD note was just that for flat 32bit, that i686 build works great to save RAM. The 32 bit pointers lock you to 4GB of space, but the binaries actually are faster and use less RAM because they are just kind of designed that way. People have been trying to completely remove x32 since 2018. It's kind of a special use-case. Gentoo had a few users who really hit that. With my musl built Void, it was noticeably faster but most programs in the ports had to be altered to work with musl.
"It's a hard life- to be a stick insect." - Karl Pilkington