Improve perceived performance - danielep71/VBA-PERFORMANCE GitHub Wiki
Can't you do better? Improve the user experience.
While you may not be able to physically make your code run faster, you may well be able to improve how fast it feels for your users.
So far, we have discussed how to optimize the actual speed of your application.
In this section, we will talk about techniques that don’t physically increase the ability of your app to respond (real speed) but instead can help to make your app feel faster (perceived speed).
1. The perceived speed
There are two kinds of time:
- clock time;
- brain time.
The former is the objective measure of time; the latter is how a person perceives time.
This is important to people involved in human-computer interaction because we can manipulate a person’s perception of time.
Perceived speed is a subjective measure of performance, responsiveness, and reliability. In other words, how fast an application “seems” to the user. It is harder to quantify and measure than the actual speed of operation, but perhaps even more important.
Time appears to pass more quickly for users who are actively engaged, distracted, or entertained than for those who are waiting passively for something to happen. Where possible, actively engage and inform users who are waiting for a task to complete.
A good general rule for improving perceived performance is that it is usually better to provide a quick response and regular status updates than make the user wait until an operation fully completes (before providing any information).
Research shows that varying levels of animation have an impact on perceived performance, with the end result of users willing to wait longer for the experience to load. Having feedback in the form of motion and animation, such as contextual transitions, makes the user feel like the app is fast and that it is reacting to the user’s input. This improves the overall user experience.
Normally, response times should be as fast as possible, but it is also possible for the computer to react so fast that the user cannot keep up with the feedback .
In cases where the computer cannot provide a fairly immediate response, continuous feedback should be provided to the user.
How can we classify an “acceptable response time”?
2. Acceptable response time
There are 3 main time limits (which are determined by human perceptual abilities) to keep in mind when optimizing application performance.
- 10 milliseconds is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.
- 1 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1 second, but the user does lose the feeling of operating directly on the data.
- After 1 second, users get impatient and notice that they're waiting for a slow computer to respond. 5 seconds is about the limit for keeping the user's attention focused.
For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable since users will then not know what to expect.
A good rule of thumb is to set ex-ante time limits for each of the application's macro-functions. Obviously, the times may be different between the test machine and the user's hardware. Therefore it is advisable to establish a "safety margin" to take into account the slower speed of the user's machine.