Might be late to the party, but I just discovered you can do this. Super simple and easy to do.
After having a read of the linked page, I backed up and just used this option:
https://wiki.archlinux.org/title/Profile-sync-daemon
Installed, created config, and enabled service:
systemctl --user enable psd.service systemctl --user enable psd-resync.service
I definitely notice an increase in speed and less SSD usage should hopefully increase lifespan.
I’m sure there would be options for alternative distros, anything using Systemd should be able to use the daemon.
Just reconfigured /etc/makepkg.conf to use extra cores and tmpfs… I’ve been compiling on the SSD with one core for so long it’s embarrassing.
While you’re still in your makepkg.conf, don’t forget to set march=native
(and remove mtune) in your CFLAGS
! (unless you’re sharing your compiled packages with other systems)
Where’s the difference between march=native
and march=x86-64
in that case?
A ton of difference! march
stands for microarchitecture levels (or feature levels). “x86-64” is the baseline feature set targeting common x86_64 instructions found in early 64-bit CPUs, circa 2003. Since 2003 obviously there have been several advancements in CPUs and the x86_64 arch, and these have been further classified as:
- x86-64-v2 (2008; includes the SSE3, SSE4 instructions and more)
- x86-64-v3 (2013; includes AVX, AVX2 and more)
- x86-64-v4 (2017; includes AVX512 mainly)
So if you’re still on x86-64, you’re missing out on some decent performance gains by not making use of all the newer instructions/optimisations made in the past two decades(!).
If you’re on a recent CPU (2017+), ideally you’d want to be on at least x86-64-v3 (v4 has seemingly negligible gains, at least on Intel). There’s also CPU-family specific marches such as znver4
for AMD Zen 4 CPUs, which would be an even better choice than x86-64-v4.
But the best march you want use is of course native
- this makes available all instructions and compiler optimisations that’s specific to your particular CPU, for the best performance you can possibly get. The disadvantage of native
is that any binaries compiled with this can run only on your CPU (or a very similar one) - but that’s only an issue for those who need to distribute binaries (like software developers), or if you’re sharing your pkg cache with other machines.
Since the flags defined in makepkg.conf only affect AUR/manual source builds (and not the default core/extra packages), I’d recommend also reinstalling all your main packages from either the ALHP or CachyOS repos, in order to completely switch over to x86-64-v3 / v4.
Further reading on microarchitectures:
- https://www.androidauthority.com/what-is-x86-64-v3-3415395/
- https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
Benchmarks:
cc: @luthis@lemmy.nz