3 ms·
I maintain Faktory, a complex background job system written in Go. I keep the dependencies to a minimum and use `upx` to compress the built binary... ...for a
by mperham 5y ago
I maintain Faktory, a complex background job system written in Go. I keep the dependencies to a minimum and use `upx` to compress the built binary...
...for a grand total binary size of 5 MB.
So many modern systems are huge because of the complex dependency tree they pull in. My entire binary likely fits within the L3 cache of the CPU you are using.
- 8note 5y agoDoes that improve the usage of it? Have you experimented with larger sizes?
- fjhfhgf 5y ago
- liftm 5y agoThe first thing a 5 MB upx-compressed binary does when executed is uncompress itself to 15~30 MB of memory, right? So what does the on-disk binary size have to do with my L3 cache?
- kimixa 5y agoYup, upx is just a loading stub that decompresses the whole thing then gets out the way. If anything it'll use more memory from the remains of the decompression stub and not being able to be clever about only reading from the backing file needed memory pages.
- mperham 5y agoUncompressed is less than 10MB.
- morelisp 5y agoSo instead of 10MB you're paying 15MB? Seems like UPX is an unnecessary dependency.
- rezonant 5y agoThank you for Sidekiq, Mike :-D