Software Bloat Analysis Detecting Removing and Preventing Performance
Software Bloat Analysis: Detecting, Removing, and Preventing Performance Problems in Modern Large-Scale Object-Oriented Applications Guoqing Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, Gary Sevitsky Ohio State University IBM T. J. Watson Research
Large-Scale Object-Oriented Software SAP Netweaver App server 2 * Large libraries *Framework-intensive applications
Runtime Bloat Can be Seen Regularly Outof. Memory Slowdown Non-scalable • Example: – A system designed to support a million concurrent users can scale only to thousands of users in practice • Consequences – Over-consumed memory – Unacceptable running/response time – Significantly-reduced scalability – Unnecessary system upgrades ($ is wasted!!!) • Can it be solved by improved hardware/multicore? 3
A Software Engineering Problem • Performance problem detection – Profiling [Xu et al. ICSE’ 08, PLDI’ 09, PLDI’ 10 -a, Novark et al. PLDI’ 09, Arnold and Ryder PLDI’ 00, Arnold et al. OOPSLA’ 08] – Heap dump analysis [Mitchell and Sevitsky OOPSLA’ 07, Altman et al. OOPSLA’ 10] – Static/dynamic analysis [Xu and Rountev PLDI’ 10 -b, Dufour et al. ISSTA’ 07, FSE’ 08] – Testing (e. g. , worst-case compl. testing [Burnim et al. ICSE’ 09]) • Performance problem removal – Static transformation [Dolby and Chien PLDI’ 00, Xu TR’ 10] – Dynamic optimization [Arnold et al. OOPSLA’ 00, IEEE 05] • Performance problem prevention 4 – What design principles cause the problem?
Future Directions § Design – Performance-conscious design models (e. g. , thin patterns) – Tools that can evaluate the performance of different designs • Testing and analysis – Performance specification – Unit testing performance problems § Self-adjusting system that removes bloat – Compiler optimizations that target specific bloat patterns • Synthesis of bloat-free implementations 5
http: //www. cse. ohio-state. edu/~xug Thank you 6
- Slides: 6