A progress bar is a component in a graphical user interface used to convey the progress of a task, such as a download or file transfer. The graphic is often displayed as a bar which illustrates the task percentage complete. Descriptive textual information may accompany the bar.
Typically, progress bars use a linear function, such that the advancement of a progress bar is directly proportional to the amount of work that has been completed. However, varying disk, memory, processor, bandwidth and other factors complicate this estimate. Consequently, progress bars often exhibit non-linear behaviors, such as acceleration, deceleration, and pauses. These behaviors, coupled with humans' non-linear perception of time passing, produces a variable perception of how long progress bars take to complete. However, this also means progress bars can be designed to "feel" faster. Finally, the graphical design of progress bars has also been shown to influence humans' perception of duration