Measuring the performance of interactive applications with listener latency profiling

When Java developers need to improve the performance of their applications, they usually use one of the many existing profilers for Java. These profilers generally capture a profile that represents the execution time spent in each method. The developer can thus focus her optimization efforts on the methods that consume the most time. In this paper we argue that this type of profile is insufficient for tuning interactive applications. Interactive applications respond to user events, such as mouse clicks and key presses. The perceived performance of interactive applications is directly related to the response time of the program. In this paper we present listener latency profiling, a profiling approach with two distinctive characteristics. First, we call it latency profiling because it helps developers to find long latency operations. Second, we call it listener profiling because it abstracts away from method-level profiles to compute the latency of the various listeners. This allows a developer to reason about performance with respect to listeners, also called observers, the high level abstraction at the core of any interactive Java application. We present our listener latency profiling approach, describe LiLa, our implementation, validate it on a set of micro-benchmarks, and evaluate it on a complex real-world interactive application.

[1]  Sharon Zakhour,et al.  The JFC Swing Tutorial: A Guide to Constructing GUIs , 1999 .

[2]  Jeff McAffer,et al.  Eclipse Rich Client Platform: Designing, Coding, and Packaging Java¿ Applications , 2005 .

[3]  Zheng Wang,et al.  Using latency to evaluate interactive system performance , 1996, OSDI '96.

[4]  Jakob Nielsen,et al.  Book review: Designing the User Interface: Strategies for Effective Human-Computer Interaction by Ben Shneiderman (Addison-Wesley, 1987) , 1987, SGCH.

[5]  I. Scott MacKenzie,et al.  Lag as a determinant of human performance in interactive systems , 1993, INTERCHI.

[6]  Ethan V. Munson,et al.  Is 100 Milliseconds Too Fast? , 2001, CHI Extended Abstracts.

[7]  Andy Hopper,et al.  Virtual Network Computing , 1998, IEEE Internet Comput..

[8]  Trevor Mudge,et al.  Thread-level parallelism and interactive performance of desktop applications , 2000, SIGP.

[9]  Ben Shneiderman,et al.  Designing the User Interface: Strategies for Effective Human-Computer Interaction , 1998 .

[10]  Ben Shneiderman,et al.  Response time and display rate in human performance with computers , 1984, CSUR.

[11]  Steve Northover,et al.  SWT: The Standard Widget Toolkit, Volume 1 , 2004 .

[12]  Nickolai Zeldovich,et al.  Interactive Performance Measurement with VNCPlay , 2005, USENIX Annual Technical Conference, FREENIX Track.

[13]  Ben Shneiderman,et al.  Determining Causes and Severity of End-User Frustration , 2004, Int. J. Hum. Comput. Interact..

[14]  Margo I. Seltzer,et al.  Improving interactive performance using TIPME , 2000, SIGMETRICS '00.

[15]  Steve Northover,et al.  SWT : the standard widget toolkit , 2004 .