6
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

Guoqing Xu , Nick Mitchell, Matthew Arnold, Atanas Rountev, Gary Sevitsky Ohio State University

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Guoqing Xu , Nick Mitchell, Matthew Arnold,  Atanas Rountev, Gary Sevitsky Ohio State University

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 UniversityIBM T. J. Watson Research

Page 2: Guoqing Xu , Nick Mitchell, Matthew Arnold,  Atanas Rountev, Gary Sevitsky Ohio State University

Large-Scale Object-Oriented Software

* Large libraries2

SAP Netweaver App server

*Framework-intensive applications

Page 3: Guoqing Xu , Nick Mitchell, Matthew Arnold,  Atanas Rountev, Gary Sevitsky Ohio State University

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?3

OutofMemory Slowdown Non-scalable

Page 4: Guoqing Xu , Nick Mitchell, Matthew Arnold,  Atanas Rountev, Gary Sevitsky Ohio State University

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?

4

Page 5: Guoqing Xu , Nick Mitchell, Matthew Arnold,  Atanas Rountev, Gary Sevitsky Ohio State University

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

Page 6: Guoqing Xu , Nick Mitchell, Matthew Arnold,  Atanas Rountev, Gary Sevitsky Ohio State University

http://www.cse.ohio-state.edu/~xug

Thank you

6