While writing an alternative to Unity’s log console, I quickly faced the problem of filtering large amount of log entries while keeping UI responsive. Basically, if filtering more than 10K records during a frame update, the software hangs; and as it grows up it gets worse and worse.
After much fiddling, I realized that the only viable way was to split the task in N frames, and only process, say, 1000 log entries on each frame. Without going into much detail, I basically have two lists I update to achieve that, you can see their length below.
Now that my UI stays responsive, I also added a progress bar which kind of became mandatory for UX:
Tried to look at other software doing so:
- Unity stock console literally hangs on that amount
- Process Explorer also has a progress bar but a modal one
Question:
Is there a well-known approach to address this problem? (couldn’t find anything online)