A well-written Python app using the respective platform's native events through say, watchdog[1] performs perfectly fine for huge numbers of files[t]. The language used isn't at all the problem with Dropbox's performance which has been a problem for as long as they've had a desktop app.
If there's one specific bottleneck (ex: hashing files) then that's a prime candidate for Cython[2] or the plain CPython C-API.
Even when you have dropbox restricted to a small folder with _no IO events at all_ it's still constantly working, which is the real problem and entirely an optimization/design problem.
Agreed, and I'm a big Python fan myself, I didn't mean to bash the language.
Somewhere between cool MIT dorm room side project and serious company there is a point where it's time to ditch it and reimplement it in in something that performs better.
Another drawback of it being Python is that when it is causing the fans to spin, I can't inspect what's going on with Activity Monitor's sampler. It's all opaque nameless Python stack frames.
If there's one specific bottleneck (ex: hashing files) then that's a prime candidate for Cython[2] or the plain CPython C-API.
Even when you have dropbox restricted to a small folder with _no IO events at all_ it's still constantly working, which is the real problem and entirely an optimization/design problem.
[1]: https://github.com/gorakhargosh/watchdog
[2]: https://cython.org/
[3]: https://docs.python.org/3/c-api/index.html
[t]: ... except when forced to use kqueue or polling