  Dynamic program analysis (also known as profiling) is well-known for its
powerful capabilities of identifying performance inefficiencies in software
packages. Although a large number of dynamic program analysis techniques are
developed in academia and industry, very few of them are widely used by
software developers in their regular software developing activities. There are
three major reasons. First, the dynamic analysis tools (also known as
profilers) are disjoint from the coding environments such as IDEs and editors;
frequently switching focus between them significantly complicates the entire
cycle of software development. Second, mastering various tools to interpret
their analysis results requires substantial efforts; even worse, many tools
have their own design of graphical user interfaces (GUI) for data presentation,
which steepens the learning curves. Third, most existing tools expose few
interfaces to support user-defined analysis, which makes the tools less
customizable to fulfill diverse user demands. We develop EasyView, a general
solution to integrate the interpretation and visualization of various profiling
results in the coding environments, which bridges software developers with
profilers to provide easy and intuitive dynamic analysis during the code
development cycle. The novelty of EasyView is three-fold. First, we develop a
generic data format, which enables EasyView to support mainstream profilers for
different languages. Second, we develop a set of customizable schemes to
analyze and visualize the profiles in intuitive ways. Third, we tightly
integrate EasyView with popular coding environments, such as Microsoft Visual
Studio Code, with easy code exploration and user interaction. Our evaluation
shows that EasyView is able to support various profilers for different
languages and provide unique insights into performance inefficiencies in
different domains.
