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.