Analyzing Large-Scale Object-Oriented Software to Find, Remove, and Prevent Runtime Bloat

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=DIVYc6twZqY



Duration: 1:10:10
56 views
3


Over the past decade, the pervasive use of advanced object-oriented languages like Java and the increasing complexity of tasks accomplished by software have led to the proliferation of large framework-intensive applications. These applications are typically built from integrating numerous layers of middleware, libraries and frameworks. While employing these libraries and frameworks eases the development effort, this reliance on code reuse comes at a cost. Many applications suffer from excessive memory footprint, which is caused by chronic runtime bloat. Bloat impacts significantly the scalability and performance of real-world object-oriented applications that form the backbone of modern enterprise computing. Compilers (e.g. the JIT compiler in a JVM) are usually ineffective in optimizing bloat away as layers of abstractions grow to be deep and dynamic. Tuning is a daunting task performed mostly manually by only a handful of skillful experts, and it is extremely labor-intensive and time-consuming. The central goal of my thesis research is to develop program analysis techniques to make tuning easier, and in particular to help programmers quickly find, remove, and prevent runtime bloat. In this talk, I will focus on two particular program analysis techniques that can help programmers quickly find and remove bloat. The first technique is a JVM-based dynamic analysis that identifies low-utility data structures by looking for operations that have high costs and low benefits. These data structures are usually strong indicators of performance problems. Using this analysis, we have found large optimization opportunities in real-world applications and classified many bloat patterns that can be regularly observed during executions. One such bloat pattern is constructing and initializing data structures that are invariant across loop iterations. The second technique that I am going to talk about is a static analysis that attempts to (a) automatically hoist such invariant data structures out of loops, and (b) report them to the developer if it is not straightforward to hoist them. We have achieved significant performance gains (e.g., as large as 82.1 running time reduction) by hoisting loop-invariant data structures in real-world large Java applications. At the end of the talk, I will give plans for my future work.




Other Videos By Microsoft Research


2016-08-16Fast Averaging, and Applications to MapReduce and Consensus on Graphs
2016-08-16LATAM 2011: Keynote Pesentation - Open Science, Open Data, and Open Source
2016-08-16Law and the GeoWeb
2016-08-16LATAM 2011: Future Trends in Software Engineering
2016-08-16LATAM 2011: Keynote - Addressing Societal Challenges Through Innovation and Partnerships
2016-08-16LATAM 2011: The Microsoft Biology Foundation
2016-08-16Designing for Remixing: Computer-supported Social Creativity
2016-08-16LATAM 2011: Cloud Computing for Science in Europe and VENUS-C and Towards Exaflop Supercomputers
2016-08-16LATAM 2011: LACCIR Projects
2016-08-16LATAM 2011: Audio and Video Research for Kinect
2016-08-16Analyzing Large-Scale Object-Oriented Software to Find, Remove, and Prevent Runtime Bloat
2016-08-16LATAM 2011: The Microsoft .NET Gadgeteer Hardware Platform: Advances in Automatic Translation
2016-08-16LATAM 2011: Tools of the Trade: Cluster & Cloud Computing on the Operating System that is not Linux!
2016-08-16LATAM 2011: Visualizing Scientific Data: Yesterday, Today, and Tomorrow
2016-08-16Minimal Multithreading - Exploiting Redundancy in Parallel Systems
2016-08-16LATAM 2011: Overview of Recent Projects from Microsoft Research
2016-08-16LATAM 2011: LACCIR & FAPESP Projects
2016-08-16Scalable Management of Enterprise and Data Center Networks
2016-08-16LATAM 2011: Scientific Computing using Windows Azure
2016-08-16Collaborative Information Seeking: The Art & Science of Making the Whole Greater than the Sum of All
2016-08-16Human-Computer Persuasive Interaction: Designing the emotional bond with customers



Tags:
microsoft research