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.
翻译:动态程序分析(又称性能剖析)因其在识别软件包性能瓶颈方面强大的能力而广为人知。尽管学术界和工业界已开发出大量动态程序分析技术,但很少有技术被软件开发者在日常开发活动中广泛采用。主要原因有三:首先,动态分析工具(又称性能剖析器)与集成开发环境(IDE)及编辑器等编码环境相分离,频繁在两者间切换显著增加了软件开发的完整周期复杂度;其次,掌握多种工具以解读其分析结果需要大量精力,更严重的是许多工具采用各自设计的图形用户界面呈现数据,导致学习曲线陡峭;最后,现有大多数工具很少提供支持用户自定义分析的接口,导致工具可定制性不足,难以满足多样化的用户需求。我们开发了EasyView这一通用解决方案,将多种性能剖析结果的解读与可视化集成到编码环境中,在代码开发周期内为开发者搭建与性能剖析器的桥梁,实现简便直观的动态分析。EasyView的创新性体现在三方面:第一,我们设计了一种通用数据格式,使EasyView能够支持针对不同语言的主流性能剖析器;第二,我们开发了一套可定制的分析方案,以直观方式对性能剖析文件进行解析与可视化;第三,我们将EasyView与Microsoft Visual Studio Code等流行编码环境紧密集成,实现便捷的代码探索与用户交互。评估结果表明,EasyView能够支持针对不同语言的多种性能剖析器,并为不同领域的性能瓶颈提供独特的洞察。