Inaccuracies in program profilers
Software—Practice & Experience
Using profile information to assist classic code optimizations
Software—Practice & Experience
ICSE '92 Proceedings of the 14th international conference on Software engineering
Optimally profiling and tracing programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficiently counting program events with support for on-line queries
ACM Transactions on Programming Languages and Systems (TOPLAS)
Avoiding conditional branches by code replication
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
EEL: machine-independent executable editing
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Visualizing interactions in program executions
ICSE '97 Proceedings of the 19th international conference on Software engineering
Interprocedural conditional branch elimination
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Performance Measurement Intrusion and Perturbation Analysis
IEEE Transactions on Parallel and Distributed Systems
Procedure placement using temporal ordering information
MICRO 30 Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture
Predicting data cache misses in non-numeric applications through correlation profiling
MICRO 30 Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture
Edge profiling versus path profiling: the showdown
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the limit of control flow analysis for regression test selection
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Visualizing the performance of higher-order programs
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
An empirical investigation of program spectra
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Complete removal of redundant expressions
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Improving data-flow analysis with path profiles
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Critical Path Profiling of Message Passing and Shared-Memory Programs
IEEE Transactions on Parallel and Distributed Systems
A hardware-driven profiling scheme for identifying program hot spots to support runtime optimization
ISCA '99 Proceedings of the 26th annual international symposium on Computer architecture
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
The Jalapeño dynamic optimizing compiler for Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
The concept of dynamic analysis
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Selective cache ways: on-demand cache resource allocation
Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture
Procedure placement using temporal-ordering information
ACM Transactions on Programming Languages and Systems (TOPLAS)
Static correlated branch prediction
ACM Transactions on Programming Languages and Systems (TOPLAS)
IEEE Transactions on Computers
A portable sampling-based profiler for Java virtual machines
Proceedings of the ACM 2000 conference on Java Grande
A comparative study of static and profile-based heuristics for inlining
DYNAMO '00 Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization
Software profiling for hot path prediction: less is more
ACM SIGPLAN Notices
A framework for reducing the cost of instrumented code
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Software profiling for hot path prediction: less is more
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Rapid profiling via stratified sampling
ISCA '01 Proceedings of the 28th annual international symposium on Computer architecture
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
High-Performance Scalable Java Virtual Machines
HiPC '01 Proceedings of the 8th International Conference on High Performance Computing
Load Scheduling with Profile Information
Euro-Par '00 Proceedings from the 6th International Euro-Par Conference on Parallel Processing
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Vacuum packing: extracting hardware-detected program phases for post-link optimization
Proceedings of the 35th annual ACM/IEEE international symposium on Microarchitecture
Adaptive online context-sensitive inlining
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Profile-based dynamic voltage and frequency scaling for a multiple clock domain microprocessor
Proceedings of the 30th annual international symposium on Computer architecture
Self-adapting software for numerical linear algebra and LAPACK for clusters
Parallel Computing - Special issue: Parallel and distributed scientific and engineering computing
A fast and accurate framework to analyze and optimize cache memory behavior
ACM Transactions on Programming Languages and Systems (TOPLAS)
Profiling Java applications using code hotswapping and dynamic call graph revelation
WOSP '04 Proceedings of the 4th international workshop on Software and performance
Efficient and Accurate Analytical Modeling of Whole-Program Data Cache Behavior
IEEE Transactions on Computers
VHC: Quickly Building an Optimizer for Complex Embedded Architectures
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Improving data-flow analysis with path profiles
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Complete removal of redundant expressions
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Fast, accurate call graph profiling
Software—Practice & Experience
Static and dynamic analysis of call chains in java
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Java virtual machine profiler interface
IBM Systems Journal
A unifying approach to performance analysis in the Java environment
IBM Systems Journal
Collecting and Exploiting High-Accuracy Call Graph Profiles in Virtual Machines
Proceedings of the international symposium on Code generation and optimization
A Programmable Hardware Path Profiler
Proceedings of the international symposium on Code generation and optimization
Nonintrusive precision instrumentation of microcontroller software
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Profiling Deployed Software: Assessing Strategies and Testing Opportunities
IEEE Transactions on Software Engineering
Summarizing application performance from a components perspective
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Frequent Loop Detection Using Efficient Nonintrusive On-Chip Hardware
IEEE Transactions on Computers
Low-overhead call path profiling of unmodified, optimized code
Proceedings of the 19th annual international conference on Supercomputing
Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
Portable, efficient, and accurate sampling profiling for java-based middleware
SEM '05 Proceedings of the 5th international workshop on Software engineering and middleware
Portable and accurate sampling profiling for Java
Software—Practice & Experience - Research Articles
Accurate, efficient, and adaptive calling context profiling
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Flexible and efficient measurement of dynamic bytecode metrics
Proceedings of the 5th international conference on Generative programming and component engineering
Reconfigurable split data caches: a novel scheme for embedded systems
Proceedings of the 2007 ACM symposium on Applied computing
Task Scheduling in a Finite-Resource, Reconfigurable Hardware/Software Codesign Environment
INFORMS Journal on Computing
Making the "box" transparent: system call performance as a first-class result
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Software—Practice & Experience
Improved error reporting for software that uses black-box components
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Using hardware performance monitors to understand the behavior of java applications
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
BIT: a tool for instrumenting java bytecodes
USITS'97 Proceedings of the USENIX Symposium on Internet Technologies and Systems on USENIX Symposium on Internet Technologies and Systems
Measuring and characterizing system behavior using kernel-level event logging
ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
Comprehensive profiling support in the javaTM virtual machine
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
Whodunit: transactional profiling for multi-tier applications
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Blended analysis for performance understanding of framework-based applications
Proceedings of the 2007 international symposium on Software testing and analysis
Scalability analysis of SPMD codes using expectations
Proceedings of the 21st annual international conference on Supercomputing
Precise automatable analytical modeling of the cache behavior of codes with indirections
ACM Transactions on Architecture and Code Optimization (TACO)
Categorizing and differencing system behaviours
HotAC II Hot Topics in Autonomic Computing on Hot Topics in Autonomic Computing
Performance tuning with instruction-level cost derived from call-stack sampling
ACM SIGPLAN Notices
Advanced Java bytecode instrumentation
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
The causes of bloat, the limits of health
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Tracking bad apples: reporting the origin of null and undefined value errors
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Using hpm-sampling to drive dynamic compilation
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Test suite reduction and prioritization with call trees
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Database-aware test coverage monitoring
ISEC '08 Proceedings of the 1st India software engineering conference
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
DARC: dynamic analysis of root causes of latency distributions
SIGMETRICS '08 Proceedings of the 2008 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Automatic plan choice validation using performance statistics
Proceedings of the 1st international workshop on Testing database systems
Cache-aware cross-profiling for java processors
CASES '08 Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Inter-context control-flow and data-flow test adequacy criteria for nesC applications
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
CCCP: complete calling context profiling in virtual execution environments
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
CProf: customizable calling context cross-profiling for embedded java processors
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Statistically Analyzing Execution Variance for Soft Real-Time Applications
Languages and Compilers for Parallel Computing
Effective performance measurement and analysis of multithreaded applications
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Accurate system-level performance modeling and workload characterization for mobile internet devices
Proceedings of the 9th workshop on MEmory performance: DEaling with Applications, systems and architecture
Flexible calling context reification for aspect-oriented programming
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Cache-aware partitioning of multi-dimensional iteration spaces
SYSTOR '09 Proceedings of SYSTOR 2009: The Israeli Experimental Systems Conference
Placement optimization using data context collected during garbage collection
Proceedings of the 2009 international symposium on Memory management
A component model of spatial locality
Proceedings of the 2009 international symposium on Memory management
Alchemist: A Transparent Dependence Distance Profiling Infrastructure
Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
Building Approximate Calling Context from Partial Call Traces
Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
A toolset for automated failure analysis
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
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
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
MAJOR: rapid tool development with aspect-oriented programming
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
HotWave: creating adaptive tools with dynamic aspect-oriented programming in 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
Cross-profiling for Java processors
Software—Practice & Experience
Design of JFluid: a profiling technology and tool based on dynamic bytecode instrumentation
Design of JFluid: a profiling technology and tool based on dynamic bytecode instrumentation
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
Workload-intensity-sensitive timing behavior analysis for distributed multi-user software systems
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
Cache behavior modelling for codes involving banded matrices
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
A compiler approach to performance prediction using empirical-based modeling
ICCS'03 Proceedings of the 2003 international conference on Computational science: PartIII
Taming hardware event samples for FDO compilation
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
Exploiting execution context for the detection of anomalous system calls
RAID'07 Proceedings of the 10th international conference on Recent advances in intrusion detection
Breadcrumbs: efficient context sensitivity for dynamic bug detection analyses
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
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Zinsight: a visual and analytic environment for exploring large event traces
Proceedings of the 5th international symposium on Software visualization
HI-C: diagnosing object churn in framework-based applications
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Scalable Identification of Load Imbalance in Parallel Executions Using Call Path Profiles
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
Euro-Par'09 Proceedings of the 2009 international conference on Parallel processing
Visualizing dynamic metrics with profiling blueprints
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Polymorphic bytecode instrumentation
Proceedings of the tenth international conference on Aspect-oriented software development
Mining hot calling contexts in small space
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Scalable fine-grained call path tracing
Proceedings of the international conference on Supercomputing
Self-adaptive software system monitoring for performance anomaly localization
Proceedings of the 8th ACM international conference on Autonomic computing
Comprehensive aspect weaving for Java
Science of Computer Programming
On-the-fly detection of precise loop nests across procedures on a dynamic binary translation system
Proceedings of the 8th ACM International Conference on Computing Frontiers
Counting messages as a proxy for average execution time in pharo
Proceedings of the 25th European conference on Object-oriented programming
Kismet: parallel speedup estimates for serial programs
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Da capo con scala: design and analysis of a scala benchmark suite for the java virtual machine
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
JP2: collecting dynamic bytecode metrics in JVMs
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Lattice-Based Sampling for Path Property Monitoring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Spy: A flexible code profiling framework
Computer Languages, Systems and Structures
Complete and Platform-Independent Calling Context Profiling for the Java Virtual Machine
Electronic Notes in Theoretical Computer Science (ENTCS)
Using platform-specific performance counters for dynamic compilation
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
A portable and customizable profiling framework for java based on bytecode instruction counting
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Dynamic code region (DCR) based program phase tracking and prediction for dynamic optimizations
HiPEAC'05 Proceedings of the First international conference on High Performance Embedded Architectures and Compilers
Coverage criteria for testing of object interactions in sequence diagrams
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
DiSL: a domain-specific language for bytecode instrumentation
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Pinpointing data locality problems using data-centric analysis
CGO '11 Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
DeadSpy: a tool to pinpoint program inefficiencies
Proceedings of the Tenth International Symposium on Code Generation and Optimization
Deferred methods: accelerating dynamic program analysis on multicores
Proceedings of the Tenth International Symposium on Code Generation and Optimization
Energy-efficient scheduling on heterogeneous multi-core architectures
Proceedings of the 2012 ACM/IEEE international symposium on Low power electronics and design
THeME: a system for testing by hardware monitoring events
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Execution profiling blueprints
Software—Practice & Experience
Challenges for refinement and composition of instrumentations: position paper
SC'12 Proceedings of the 11th international conference on Software Composition
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Dynamic anomaly detection for more trustworthy outsourced computation
ISC'12 Proceedings of the 15th international conference on Information Security
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
A survey on cache tuning from a power/energy perspective
ACM Computing Surveys (CSUR)
Trace construction using enhanced performance monitoring
Proceedings of the ACM International Conference on Computing Frontiers
Context-sensitive delta inference for identifying workload-dependent performance bottlenecks
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Tracking performance failures with rizel
Proceedings of the 2013 International Workshop on Principles of Software Evolution
Effective sampling-driven performance tools for GPU-accelerated supercomputers
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Family-based performance measurement
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Enabling modularity and re-use in dynamic program analysis tools for the java virtual machine
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Simple profile rectifications go a long way
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
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
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
Efficient and accurate stack trace sampling in the Java hotspot virtual machine
Proceedings of the 5th ACM/SPEC international conference on Performance engineering
Hi-index | 0.01 |
A program profile attributes run-time costs to portions of a program's execution. Most profiling systems suffer from two major deficiencies: first, they only apportion simple metrics, such as execution frequency or elapsed time to static, syntactic units, such as procedures or statements; second, they aggressively reduce the volume of information collected and reported, although aggregation can hide striking differences in program behavior.This paper addresses both concerns by exploiting the hardware counters available in most modern processors and by incorporating two concepts from data flow analysis--flow and context sensitivity--to report more context for measurements. This paper extends our previous work on efficient path profiling to flow sensitive profiling, which associates hardware performance metrics with a path through a procedure. In addition, it describes a data structure, the calling context tree, that efficiently captures calling contexts for procedure-level measurements.Our measurements show that the SPEC95 benchmarks execute a small number (3--28) of hot paths that account for 9--98% of their L1 data cache misses. Moreover, these hot paths are concentrated in a few routines, which have complex dynamic behavior.