Content warning: Animated GIFs
Sure, I have a backlog of ideas and tasks to do, going to go through them now
Some of those ideas were good, such as putting a maximum on the CPU load. This is something I've been trying to do many times. Long time ago I built pull-drain-gently and I've been putting it here and there and checking whether it makes a diff. So far it hasn't, and that's a bummer.
This time I made a similar module, but for push-streams (Dominic's new stream library that is half finished, it's much faster, and it's what we use in ssb-db2 for scanning the log): push-gently. But sadly, I couldn't just hook it up in the stream pipeline, I think there are bugs in push-stream. :P (By the way, check the bottom of the readme on that module!)
What this accomplishes is that it simply guarantees that other CPU tasks will have opportunity to run. This is important for all apps, but mobile apps suffer more visibly. For instance, Patchwork also suffers from this problem! When it's super busy indexing, it doesn't react to clicks on stuff, see this GIF:
In comparison, Manyverse using too-hot, capping CPU at 85%, allows all UI interactions to run immediately, even though indexing is happening in the background: