jkandzi/Progress.swift

Iterations/second Should Average Over Recent History

Opened this issue · 1 comments

Thanks for making and maintaining this library, it's a much needed tool in Swift.

It appears that the iterations/second is calculated based on some average of the speed from the entire history of the run? I believe most progress indicators prefer an average of recent history, rather than all history? In my current situation the progress iterations/second and ETA are working poorly for me because I must first iterate very quickly through ~80,000 items simply throwing them out until I find the starting location. Once I've found the starting location, iterating through the remaining ~900,000 items becomes much slower. Because the first 80,000 items are iterated extremely quickly compared to the remaining items, it will take ~5+ minutes for the iterations/second to average down to a number that is close to the true iterations per second after finding my stating location.

If the progress bar were instead averaging on recent history, behavior should remain the same for situations where all iterations take the same amount of time, and it should become a more useful statistics for situations like mine where the speed of iteration changes.

Correct me if I'm wrong about how the iterations/second is calculated. An alternate explanation is that my iteration rate really is decreasing as my iteration count gets higher, or perhaps a combination of the issues.