TY - GEN
T1 - Subsuming methods
T2 - 6th ACM/SPEC International Conference on Performance Engineering, ICPE 2015
AU - Maplesden, David
AU - Tempero, Ewan
AU - Hosking, John
AU - Grundy, John C.
N1 - Publisher Copyright:
Copyright © 2015 ACM.
PY - 2015/1/28
Y1 - 2015/1/28
N2 - The majority of existing application profiling techniques ag- gregate and report performance costs by method or call- ing context. Modern large-scale object-oriented applications consist of thousands of methods with complex calling pat- terns. Consequently, when profiled, their performance costs tend to be thinly distributed across many thousands of loca- tions with few easily identifiable optimisation opportunities. However experienced performance engineers know that there are repeated patterns of method calls in the execution of an application that are induced by the libraries, design patterns and coding idioms used in the software. Automati- cally identifying and aggregating costs over these patterns of method calls allows us to identify opportunities to improve performance based on optimising these patterns. We have developed an analysis technique that is able to identify the entry point methods, which we call subsuming methods, of such patterns. Our ofiine analysis runs over previously collected runtime performance data structured in a calling context tree, such as produced by a large number of existing commercial and open source profilers. We have evaluated our approach on the DaCapo bench- mark suite, showing that our analysis significantly reduces the size and complexity of the runtime performance data set, facilitating its comprehension and interpretation. We also demonstrate, with a collection of case studies, that our analysis identifies new optimisation opportunities that can lead to significant performance improvements (from 20% to over 50% improvement in our case studies).
AB - The majority of existing application profiling techniques ag- gregate and report performance costs by method or call- ing context. Modern large-scale object-oriented applications consist of thousands of methods with complex calling pat- terns. Consequently, when profiled, their performance costs tend to be thinly distributed across many thousands of loca- tions with few easily identifiable optimisation opportunities. However experienced performance engineers know that there are repeated patterns of method calls in the execution of an application that are induced by the libraries, design patterns and coding idioms used in the software. Automati- cally identifying and aggregating costs over these patterns of method calls allows us to identify opportunities to improve performance based on optimising these patterns. We have developed an analysis technique that is able to identify the entry point methods, which we call subsuming methods, of such patterns. Our ofiine analysis runs over previously collected runtime performance data structured in a calling context tree, such as produced by a large number of existing commercial and open source profilers. We have evaluated our approach on the DaCapo bench- mark suite, showing that our analysis significantly reduces the size and complexity of the runtime performance data set, facilitating its comprehension and interpretation. We also demonstrate, with a collection of case studies, that our analysis identifies new optimisation opportunities that can lead to significant performance improvements (from 20% to over 50% improvement in our case studies).
KW - Dynamic performance analysis
KW - Profiling
KW - Runtime bloat
KW - Subsuming methods
UR - http://www.scopus.com/inward/record.url?scp=84923887237&partnerID=8YFLogxK
U2 - 10.1145/2668930.2688040
DO - 10.1145/2668930.2688040
M3 - Conference contribution
T3 - ICPE 2015 - Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering
SP - 175
EP - 186
BT - ICPE 2015 - Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering
PB - Association for Computing Machinery, Inc
Y2 - 31 January 2015 through 4 February 2015
ER -