Anyone using x32?

bvsbvs
edited August 25 in Technical

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

  • AnthonySmithAnthonySmith AdministratorHosting ProviderOG

    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/

  • WSSWSS OG Guru Meditation Error

    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

  • @WSS said:
    I ran all of my nameservers with low ram under x32 (i686 on OpenBSD). The binaries are smaller too.

    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

    @AnthonySmith said:
    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.

    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),

  • WSSWSS OG Guru Meditation Error

    @bvs said:

    @WSS said:
    I ran all of my nameservers with low ram under x32 (i686 on OpenBSD). The binaries are smaller too.

    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

    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

Sign In or Register to comment.