I've used syncthing for a few years to synchronize 100k+ files and 10k+ folders. I used to regularly get CPU usage spikes from syncthing whenever it scanned folders for changes. The default operating mode of syncthing used to be "do a full scan every N (configurable) seconds for changes," and you needed to run a separate program (syncthing-inotify for me) to use filesystem watches instead. Those full scans would be cheap if you're synchronizing just a few folders, but it's CPU-expensive to regularly check tens of thousands of folders for changes (it might have been stat-ing every file for modtimes, too, I dunno).
Over the past year or so, file watching (via inotify/etc) has been built into syncthing itself. I enabled watching on all my computers and syncthing's CPU usage has gone down considerably as a result, while user happiness has increased; I spend less time banging on syncthing's pipes and more time doing stuff with the files it synchronizes.