The main performance problem in pacman as far as I can tell is really slow xz decompression. This is mostly important for large packages:
$ time xzcat /var/cache/pacman/pkg/cuda-10.1.243-1-x86_64.pkg.tar.xz >/dev/null
1:17,33 total
Just decompressing that 1.8GB package takes 77 seconds.There was a discussion in April to switch compression to zstd - which reduces the decompression time for that package to only 4 seconds (!) while keeping the same file size. That way the disk is the bottleneck again, as it should be. That switch would be awesome, but it looks like it's not happening currently.