Why?
So, why do the speed tests turn out like that do, and why is
freebsd-rustdate way faster than freebsd-update?
freebsd-update is a shell script.
As mentioned in the
FAQ, freebsd-update is a shell script.
That means it’s effectively a fork/exec stress test, and it does
zillions of them.
We have data structures
freebsd-update has to do tons of
grep | cut | grep | sort | ... pipelines, usually over the same data
many many times, to extract information to work with. Being in a full
programming language freebsd-rustdate can parse data once, build data
structures in a useful way out of it, and then just chase some pointers
when it needs some subset of the information.
We have cores
freebsd-rustdate has the ability to use multiple cores (if you have them) for
various actions, like scanning your system and stashing up data. We
don’t currently use any parallelism in installing the files, but may in
the future. That doesn’t help you on a tiny little single-core VM or the
like, but a few cores can give you a nice linear speedup on some steps.