Why is duplicati so slow at backups / generate so much disk IO?

I’m backing up a Macintosh running High Sierra. This is an incremental backup of about 500GB, and I’m using a ramdisk as a tempdir to prevent SSD wear. The system was freshly booted and had no other programs open. No bandwidth limits are set in Duplicati.

CPU utilization is around “125%”, so about a third of usable CPU capacity on this quad-core system; I’ve never seen that figure go about 200%. Disk read speed is about 100MB/sec, on a DRAM-and-multilevel-cache SSD that will do over 1500MB/sec, actual real-world verified results, using dd and 1MB blocksizes.

While scanning a folder containing ~15MB camera RAW files, Activity Monitor is showing nearly 2,000-2,500 IOPS.

Why is there so many IOPS being generated from what is essentially sequential IO?

File verification after a backup appears to be capped to about one quarter my CPU’s capability, and also quite slow. Why? Again, this should be a pretty simple sequential read and checksum?

If I run a compact, it appears to be completely single-threaded, and doesn’t even fully utilize a single core. It’s not disk IO bound, as very little disk IO happened…