How Humans Perceive Performance
Chapter: Application Performance Concepts
We've talked a lot about the technical aspects of measuring performance. While this is important, it's important to remember that users are the ultimate judge of performance. As users are not clocks, their time perception may be different from what we measure empirically. If you are interested in a detailed discussion of this topic, we recommend the book, Designing and Engineering Time: The Psychology of Time Perception in Software, by Steven C. Seow.
When talking about human time perception, we must first be aware that we (humans) always compare perceived time against our expectation of how fast things should be. So time for us is always relative. We judge system responsiveness by comparing expectations against our perceptions of response time.
In judging system responsiveness, we must first know how fast users expect a system to be. Research shows that there are four main categories of response times:
- We expect an instantaneous response, 0.1 to 0.2 milliseconds, for any action similar to a physical interaction. Pressing a button, for example. We expect this button to indicate that it is pressed within this time.
- We expect an immediate response, within a half to one second, indicating our information is received. Even in the case of a simple interaction, we expect an actual response to our request. This is especially true for information we assume is already available, as when paging or scrolling content.
- We expect a reply within 2 to 5 seconds for any other interactive request. If the re-sponse takes longer, we begin to feel that the interaction is cumbersome. The more complex we perceive a task to be, the longer we are willing to wait for the response.
When it comes to system performance, users have very precise expectations, and these metrics are useful both for understanding our performance perceptions and for use in SLA definitions. It can be difficult to find proper SLAs or response time thresholds, but having these precise categories gives us a straightforward approach to defining performance thresholds.
What It Means to Be Faster
As with performance, human perception for faster or slower is not as precise as tech-nical measurements. This is very important when judging whether a performance optimization is worth the effort.
In essence, our limited perception of application responsiveness can't detect perfor-mance changes of much less than 20%. We can use this as a rule of thumb when deciding which improvements will impact users most noticeably. If we optimize 300 milliseconds a request that took 4 seconds, we can assume that many users will not perceive any difference in response time. It might still make sense to optimize the application, but if our goal is to make things faster for the users, we have to make it faster by at least 0.8 seconds.
Table of Contents
Application Performance Concepts
Memory Management
How Java Garbage Collection Works
The Impact of Garbage Collection on application performance
Reducing Garbage Collection Pause time
Making Garbage Collection faster
Not all JVMS are created equal
Analyzing the Performance impact of Memory Utilization and Garbage Collection
The different kinds of Java memory leaks and how to analyze them
High Memory utilization and their root causes
Classloader-releated Memory Issues