The installer has no idea how long it will take (because it depends). The progress bar is mostly arbitrary just, so user know something is happening. It just can’t end before the installation is completed. That’s why it’s most often stuck on 99%. Other option is adding x% after each complete step, but all steps are not equally long.
TLDR.: No one is gonna waste time trying to make accurate progress bar.
I’ve actually developed loading bars for applications before.
99 times out of 100 a loading bar is set by dividing the number of tasks to accomplish by the number of tasks already accomplished. Rarely is there any consideration to the length of time it takes to do a task. If there is, it’s a best guess. Not many people want to pay for time studies to get it to be a realistic loading bar. They just want a notification of progress so they don’t think the application is frozen.
Just for kicks and giggles. I have done a time study on an application loading and normalized the loading bar to be fairly accurate as a countdown. On the computer I was developing with. I transferred the application to a user’s computer and it was way off. (Maybe my HD was fast or slower than the user’s, or their network connection was flaky. Who knows. There’s a million reasons).
Not saying you can’t figure it out, but no one is going to pay a developer to do it.
Similar to how you go to a car boot sale / rummage sale with all of your stuff. That’s normally quick – then you have to unpack and place all of your items onto a table which takes time.
The same applies for software installation. The process of getting to the point of installing is quick, so is the first part of your computer working out what to do. Then small files need to be moved into the right places, computer updates system registry and then cleans up.
You shouldn’t really listen to anyone here. The answer is that it’s implementation dependent. Maybe the engineer wrote it so that there are four steps of 25% each. Copying files is maybe step 1 and is super fast. Step 2 is a big database operation and is slow… etc.
Maybe the steps are totally fake. Maybe there is a simple timer that moves the progress up 10% every second until 99% where the last percent is actually dependent on something.
Its completely unique to the person who programmed it or a commonly used installation software.
It’s not a linear process but to make things “user friendly” interfaces are made with an assumption that things indeed are linear.
The code that shows you “% done” only knows about the tasks that need to be done, not how long each task will take. So if the early tasks are very simple tasks, but the latter tasks are very complex tasks, it will appear to slow down as you see a % done being calculated.
Latest Answers