Introduction to algorithms
Profile-guided automatic inline expansion for C programs
Software—Practice & Experience
ICSE '92 Proceedings of the 14th international conference on Software engineering
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Optimally profiling and tracing programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Exploiting hardware performance counters with flow and context sensitive profiling
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Call graph construction in object-oriented languages
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A portable sampling-based profiler for Java virtual machines
Proceedings of the ACM 2000 conference on Java Grande
A framework for reducing the cost of instrumented code
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
An Empirical Study of Method In-lining for a Java Just-in-Time Compiler
Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium
Adaptive online context-sensitive inlining
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
An Efficient Online Path Profiling Framework for Java Just-In-Time Compilers
Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques
Fast, accurate call graph profiling
Software—Practice & Experience
Collecting and Exploiting High-Accuracy Call Graph Profiles in Virtual Machines
Proceedings of the international symposium on Code generation and optimization
Low-overhead call path profiling of unmodified, optimized code
Proceedings of the 19th annual international conference on Supercomputing
JavaTM just-in-time compiler and virtual machine improvements for server and middleware applications
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
Improved error reporting for software that uses black-box components
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Blended analysis for performance understanding of framework-based applications
Proceedings of the 2007 international symposium on Software testing and analysis
Perfdiff: a framework for performance difference analysis in a virtual machine environment
Proceedings of the 6th annual IEEE/ACM international symposium on Code generation and optimization
CCCP: complete calling context profiling in virtual execution environments
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Effective performance measurement and analysis of multithreaded applications
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Placement optimization using data context collected during garbage collection
Proceedings of the 2009 international symposium on Memory management
Chameleon: adaptive selection of collections
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Binary analysis for measurement and attribution of program performance
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Building Approximate Calling Context from Partial Call Traces
Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
Safety High Accuracy Context-Aware Matrix (CAM) Making Based on X.509 Proxy Certificate
ISA '09 Proceedings of the 3rd International Conference and Workshops on Advances in Information Security and Assurance
Parallelizing calling context profiling in virtual machines on multicores
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Tracking performance across software revisions
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Advanced runtime adaptation for Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
How a Java VM can get more from a hardware performance monitor
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Minimizing dependencies within generic classes for faster and smaller programs
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Cross-profiling for Java processors
Software—Practice & Experience
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
Exploring large profiles with calling context ring charts
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
Correcting the dynamic call graph using control-flow constraints
CC'07 Proceedings of the 16th international conference on Compiler construction
Complementing missing and inaccurate profiling using a minimum cost circulation algorithm
HiPEAC'08 Proceedings of the 3rd international conference on High performance embedded architectures and compilers
Breadcrumbs: efficient context sensitivity for dynamic bug detection analyses
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Finding low-utility data structures
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Precise calling context encoding
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Visualizing and exploring profiles with calling context ring charts
Software—Practice & Experience
Euro-Par'09 Proceedings of the 2009 international conference on Parallel processing
Mining hot calling contexts in small space
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Complete and Platform-Independent Calling Context Profiling for the Java Virtual Machine
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
HOTL: a higher order theory of locality
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Trace construction using enhanced performance monitoring
Proceedings of the ACM International Conference on Computing Frontiers
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Ball-Larus path profiling across multiple loop iterations
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
JP2: Call-site aware calling context profiling for the Java Virtual Machine
Science of Computer Programming
Estimating the Empirical Cost Function of Routines with Dynamic Workloads
Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization
DeltaPath: Precise and Scalable Calling Context Encoding
Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization
Dynamic and Adaptive Calling Context Encoding
Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
Calling context profiles are used in many inter-procedural code optimizations and in overall program understanding. Unfortunately, the collection of profile information is highly intrusive due to the high frequency of method calls in most applications. Previously proposed calling-context profiling mechanisms consequently suffer from either low accuracy, high overhead, or both. We have developed a new approach for building the calling context tree at runtime, called adaptive bursting. By selectively inhibiting redundant profiling, this approach dramatically reduces overhead while preserving profile accuracy. We first demonstrate the drawbacks of previously proposed calling context profiling mechanisms. We show that a low-overhead solution using sampled stack-walking alone is less than 50% accurate, based on degree of overlap with a complete calling-context tree. We also show that a static bursting approach collects a highly accurate profile, but causes an unacceptable application slowdown. Our adaptive solution achieves 85% degree of overlap and provides an 88% hot-edge coverage when using a 0.1 hot-edge threshold, while dramatically reducing overhead compared to the static bursting approach.