240 likes | 365 Views
On the Object Orientedness of C++ programs in SPEC CPU 2006. Ciji Isen & Lizy K. John University of Texas - Austin. 1/27/2008. Introduction. Object Oriented programming encourages Code modularity , ease of design & maintenance Inheritance & hierarchies polymorphism Dynamic Dispatch
E N D
On the Object Orientedness of C++ programs in SPEC CPU 2006 Ciji Isen & Lizy K. John University of Texas - Austin Laboratory for Computer Architecture 1/27/2008
Introduction • Object Oriented programming encourages • Code modularity, ease of design & maintenance • Inheritance & hierarchies • polymorphism • Dynamic Dispatch • Should imply • Multiple function invocation • More functions • More indirect branching • Increased control flow • particularly function calls and indirect branches Laboratory for Computer Architecture
Objective • Object oriented nature of SPEC CPU2006 C++ programs • Measure using quantifiable metrics • Compare with other OO(SPEC java) benchmarks • Has OO nature affected control flow? • branch compositions • Branch misprediction Laboratory for Computer Architecture
C++ programs in SPEC cpu06 Laboratory for Computer Architecture
Methodology • Performance counters • Woodcrest(Intel), Power5+(IBM) • Benchmarks • SPEC CPU 2006 • SPEC jbb2000 • SPECjvm98 • Principle Component Analysis for Visualization Laboratory for Computer Architecture
Object Oriented metrics • CK (Chidamber and Kemerrer) metrics • WMC (Weighted Methods per Class) • DIT (Depth of Inheritance Tree) • NOC (Number of Children) • CBO (Coupling Between Objects) • RFC (Response for a Class) Laboratory for Computer Architecture
WMC (Weighted Methods per Class) • if complexity is unity • WMC = n • Intuition: More methods implies • more time & effort to develop and maintain class • More methods inherited by children => more impact on children • Likely to be more application specific => less reuse Laboratory for Computer Architecture
DIT (Depth of Inheritance Tree) • A measure of impact of ancestor classes • Intuition: deeper class hierarchy implies • More methods inherited => more complexity • Greater design complexity • Greater potential to reuse inherited methods Laboratory for Computer Architecture
NOC (Number of Children) • Definition: Number of immediate subclasses • Intuition: more children implies • Greater reuse • more influence on the design Laboratory for Computer Architecture
CBO (Coupling Between Objects) • Definition: The number of other classes to which a class is coupled • Via methods • Instance variables • Intuition: more coupling implies • Bad for modularity. Less independence for class => difficult to reuse • Less independence => sensitive to change in other parts • More interaction => complexity in testing correctness Laboratory for Computer Architecture
RFC (Response for a Class) • Intuition: more methods executed per message implies • More complexity for the class • Complexity in testing and debugging Laboratory for Computer Architecture
Object Orientedness of C++ benchmarks in cpu06 Laboratory for Computer Architecture
Object Orientedness of C++ benchmarks in cpu06 Laboratory for Computer Architecture
Object Orientedness of C++ vs. java benchmarks [DaCapo paper] Laboratory for Computer Architecture
Object Orientedness of C++ vs. java benchmarks Laboratory for Computer Architecture
Control flow Characteristics • Has OO nature affected control flow? • branch compositions • Branch misprediction Laboratory for Computer Architecture
Branch types - INT Laboratory for Computer Architecture
Branch types - FP Laboratory for Computer Architecture
Branch types - INT Laboratory for Computer Architecture
Branch types - FP Laboratory for Computer Architecture
Branch misprediction - INT Laboratory for Computer Architecture
Branch misprediction - FP Laboratory for Computer Architecture
Summary • Increased presence of C++ in SPEC CPU encouraging • Measured object orientedness of C++ programs • Xalanckbmk,dealII & omnetpp – strong OO • OO nature of C++ programs not any worse than SPEC Java benchmarks • Analyzed impact of OO nature on control flow • Control flow increase pronounced for FP • Xalanckbmk, dealII & omnetpp – higher % of function calls and indirect branches Laboratory for Computer Architecture
Questions 24 Laboratory for Computer Architecture Laboratory for Computer Architecture 8/28/2007