VIA - Vertical Profiling and Optimization of Modern Interactive Applications
Interactive applications represent a large segment of software, ranging from web browsers to spreadsheets, from embedded cell phone software to large-scale interactive visualization systems. The performance of these applications significantly impacts the productivity and satisfaction of their users. Unfortunately, traditional performance profiling and optimization approaches fail to address the aspect of performance most relevant to users: the perceptible latency in responding to user requests. We will devise a light-weight profiling approach that can be deployed with applications running in production environments. Our latency profiler will measure the perceptible performance of the application and whenever it observes perceptible latency, it will report diagnostic information back to a central server. Our infrastructure will then allow application developers to efficiently pinpoint and fix the causes of the performance problems as they happen in the field. To achieve this goal, we will address three challenges during this project: We will have to devise (1) an always-on measurement approach that is lightweight enough to be deployed in production settings; (2) an approach to causal analysis that allows developers to efficiently find the root causes of long latency; and (3) an approach to automatically propose possible solutions to fix the specific latency problems identified by our profiler. Our long-term research goal is to improve the performance of software running on virtual execution environments (known for their software engineering benefits but negative impact on performance) beyond the performance of software running directly on the operating system. The proposed work is a step in this direction, focusing on a class of applications where the most frequently used examples (such as the major office suites, email clients, or web browsers) are still trading the software engineering benefits of higher-level runtime environments for the performance of software running directly on the operating system.