60 likes | 210 Views
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.
E N D
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 * Large libraries SAP Netweaver App server *Framework-intensive applications
Runtime Bloat Can be Seen Regularly • 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? OutofMemory Slowdown Non-scalable
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 • 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
http://www.cse.ohio-state.edu/~xug Thank you