TRACERJD: GENERIC TRACE-BASED DYNAMIC DEPENDENCE ANALYSIS WITH FINE-GRAINED LOGGING Haipeng Cai and Raul Santelices Department of Computer Science and Engineering University of Notre Dame Supported by ONR Award N000141410037 SANER 2015
Context 2 Testing/ Reverse Performance optimization Evolution …… Debugging Engineering Program-dependence Analysis Program
Context 3 Testing/ Reverse Performance optimization Evolution …… Debugging Engineering Dynamic Dependence Analysis Inputs Program
Status-quo 4 Some tools monitor high-level system states (e.g., network traffic, resource usage, …) …… DTrace Valgrind Some reports coarse-level runtime conditions (function invocations, exception trace, …) …… JTracer JavaTracer Others are applicable to specific tasks only (dynamic slicing, execution reduction, …) Code- Investigator …… JavaSlicer
Problem 5 ? Only few techniques available capture fine-grained source-level dynamic dependence information that supports a variety of dependence-based applications tool supports
Approach 6 TracerJD Offers generic/common fine-grained dynamic dependence information to support various applications Many specific tools can be built upon it
TracerJD 7 Application tools …… Dynamic slicer Performance profiler Dynamic dependence querying subroutines Hierarchical trace indexing Variable events Statement events Method … Trace events … … Structured logging of execution events Variable Method Statement definitions/uses calls/returns occurrence
Performance 8 Instrumentation time 350 static analysis time 300 250 (secs) 200 324.9 150 100 143.3 50 6.7 15.1 0 Schedule1 NanoXML XML-security JMeter
Performance 9 Runtime slowdown 15x Factor of runtime 13x slowdown 11x 9x 7x 13 12 10 5x 3x 2 1x Schedule1 NanoXML XML-security JMeter
Performance 10 Storage costs 4x Factor of code 3x size growth 3x 3.2 2x 2.7 2.1 2x 2.0 1x Schedule1 NanoXML XML-security JMeter 150 Total trace size (MB) 100 125.3 50 44.6 36.1 13.6 0 Schedule1 NanoXML XML-security JMeter
Use scenarios 11 Scenario 1: dynamic slicing slice criterion Transitively traverse backward dependencies Last definition Last predicate TracerJD - dynamic dependence querying subroutines
Use scenarios 12 Scenario 2: performance profiling Set of Execution- statements time report Compute time elapses between instances Statement instances TracerJD - dynamic dependence querying subroutines Timing flag
13 Conclusions A framework that provides generic dynamic dependence information to support various applications An effective trace indexing scheme that enables efficient dynamic-dependence querying Two example client analyses that offer readily utilities and demonstrate the flexibility of building diverse applications
Acknowledgements 14 Office of Naval Research for funding All of you for time and attention
Q&A 15 PLEASE ASK QUESTIONS
Recommend
More recommend