I think you’ve been looking at battery usage/consumption a bit too out of context…
On a modern smartphone, the most power-intensive component is often the CPU, followed by the display, then the various radio transceivers, RAM, etc. The exact order can vary a bit from phone to phone, but the CPU, display and cell modem (especially 5G radios) are usually the top three.
Let’s say that the command sleep 86400
is executed in Linux, macOS, and/or Android. The sleep
program is in memory and not in a paused (SIGSTOP) state, so therefore it’s going to be “running” for a full 24 hours, yet the CPU load will be 0% for at least 99.9% of the run time.
Technically speaking, sleep 86400
is going to spend 24 hours on battery power, but it’s really only going to be active for a fraction of a second the whole time. So a proper analysis requires a full system accounting of the CPU cycles, disk I/O, etc.
If Syncthing is running in the background and spending most of its time waiting for inotify watch notifications – consuming minimal CPU cycles while waiting – is it really using that much battery power?
Note that there’s also a huge difference in efficiency between NextCloud and Syncthing when it comes to syncing files. Nextcloud’s underlying network protocol is WebDAV which is much heavier weight compared to Syncthing’s custom protocol.
(NextCloud isn’t deficient and/or WebDAV is bad. It’s simply that it overall requires more system resources compared to Syncthing, especially as the number of files and/or sizes grows.)
That’s just Syncthing’s default settings which are user-configurable. From Syncthing’s “Understanding Synchronization” documentation page:
The watcher does not immediately schedule a scan when a change is detected. It accumulates changes for 10s (adjustable by fsWatcherDelayS) and deleted files are further delayed for 1min. Therefore it is expected that you experience a slight delay between making the change and it appearing on another device.
Keep in mind that lowering the threshold so that changes are immediately synced will do the complete opposite of your goal to minimize battery consumption.