Computers and programming languages tend to be deterministic and predictable. Yet progress bars seem the opposite, especially if the operation is complex. Even for world class professional products, some progress bars do little to reflect the real progress of an operation. I've seen them go from 10% to 90% in one leap after doing nothing for 4 hours. I've even seen some take steps backwards, suggesting extra unexpected processing has been discovered.
Granted that there may be database operations, network processing and parallel operations but it seems that this could be quantified in some manner and a percentage estimated. After all, there must be a finite amount of instructions executed to complete an operation. Is this simply poor coding, or is there some fundamental reason representing progress is difficult?
Asked By : Paul Uszak
Answered By : user6916458
To add to the more general answers so far I can give a few examples from my field where progress bars don't work and why;
Computer aided design programs - programs that perform thermal analysis or fluid mechanics can be generally terrible with progress bars. They jump forward, backwards, take inconsistence steps and there is almost no use in watching them. This is due to the iterative nature of these types of simulations and the need to find convergence. This is best viewed not by a progress bar but by a iteration v convergence plot.
Complex simulations - I wrote a program that simulates a complex environment with many cross related factors. It was for a fixed timeline so you'd this the progress bar could just be the time right? In my case the simulation too longer with each new time step thereby meaning the progress bar gets slower and slower - not great. I found another metric for how long the average simulation takes based on the number of items in the simulation which was closer to accurate - but not ideal since sometimes the process bar never filled (simulation stopped before) or reach 100% to early (simulation ran longer than expected).
In either case a pure progress complete bar would either be impossible to calculate the maximum for beforehand (case 1) or none linear and hence not much use (case 2)
Best Answer from StackOverflow
Question Source : http://cs.stackexchange.com/questions/65929
0 comments:
Post a Comment
Let us know your responses and feedback