Data structures and network algorithms
Data structures and network algorithms
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Determining average program execution times and their variance
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Profile guided code positioning
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Abstract execution: a technique for efficiently tracing programs
Software—Practice & Experience
The C programming language
An analysis of MIPS and SPARC instruction set utilization on the SPEC benchmarks
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
CCG: a prototype coagulating code generator
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Predicting program behavior using real or estimated profiles
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Procedure merging with instruction caches
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Techniques for debugging parallel programs with flowback analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Optimally profiling and tracing programs
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Profile-driven compilation
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Rewriting executable files to measure program behavior
Software—Practice & Experience
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
ACM Computing Surveys (CSUR)
Parallel processing: a smart compiler and a dumb machine
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Algorithms for Network Programming
Algorithms for Network Programming
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Optimal code for control structures
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computer
Mtool: An Integrated System for Performance Debugging Shared Memory Multiprocessor Applications
IEEE Transactions on Parallel and Distributed Systems
On the time overhead of counters and traversal markers
ICSE '81 Proceedings of the 5th international conference on Software engineering
Efficiently counting program events with support for on-line queries
ACM Transactions on Programming Languages and Systems (TOPLAS)
Experimental results from dynamic slicing of C programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Instruction scheduling and executable editing
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Automatic checking of instruction specifications
ICSE '97 Proceedings of the 19th international conference on Software engineering
Specifying representations of machine instructions
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
Hybrid slicing: integrating dynamic information with static analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Continuous profiling: where have all the cycles gone?
ACM Transactions on Computer Systems (TOCS)
Continuous profiling: where have all the cycles gone?
Proceedings of the sixteenth ACM symposium on Operating systems principles
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
A user level program transformation tool
ICS '98 Proceedings of the 12th international conference on Supercomputing
A Tree-Based Alternative to Java Byte-Codes
International Journal of Parallel Programming
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
Balance scheduling: weighting branch tradeoffs in superblocks
Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture
Static correlated branch prediction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Profile assisted register allocation
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 2
Efficient performance prediction for modern microprocessors
Proceedings of the 2000 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Source-to-Source Instrumentation for the Optimization of an Automatic Reading System
The Journal of Supercomputing
A framework for reducing the cost of instrumented code
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Rapid profiling via stratified sampling
ISCA '01 Proceedings of the 28th annual international symposium on Computer architecture
Reversible Debugging Using Program Instrumentation
IEEE Transactions on Software Engineering
A novel approach to code analysis of digital signal processing systems
CASES '01 Proceedings of the 2001 international conference on Compilers, architecture, and synthesis for embedded systems
Scheduling Superblocks with Bound-Based Branch Trade-Offs
IEEE Transactions on Computers - Special issue on the parallel architecture and compilation techniques conference
Profile-directed optimization of event-based programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Application-adaptive intelligent cache memory system
ACM Transactions on Embedded Computing Systems (TECS)
Online feedback-directed optimization of Java
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dataflow Frequency Analysis Based on Whole Program Paths
Proceedings of the 2002 International Conference on Parallel Architectures and Compilation Techniques
HERCULE: Non-invasively Tracking JavaTM Component-Based Application Activity
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
A Power Efficient Cache Structure for Embedded Processors Based on the Dual Cache Structure
LCTES '00 Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems
Simple and General Statistical Profiling with PCT
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Detecting Manipulated Remote Call Streams
Proceedings of the 11th USENIX Security Symposium
Value-Profile Guided Stride Prefetching for Irregular Code
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Protection of Software-Based Survivability Mechanisms
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
A banked-promotion translation lookaside buffer system
Journal of Systems Architecture: the EUROMICRO Journal
Optimal and efficient speculation-based partial redundancy elimination
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Continuous program optimization: A case study
ACM Transactions on Programming Languages and Systems (TOPLAS)
Optimized code restructuring of OS/2 executables
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
Performance Analysis in CoDe-X Partitioning for Structural Programmable Accelerators
CODES '97 Proceedings of the 5th International Workshop on Hardware/Software Co-Design
The Impact of Software Evolution on Code Coverage Information
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
High-level algorithmic complexity evaluation for system design
Journal of Systems Architecture: the EUROMICRO Journal
Profiling Java applications using code hotswapping and dynamic call graph revelation
WOSP '04 Proceedings of the 4th international workshop on Software and performance
Cross-architecture performance predictions for scientific applications using parameterized models
Proceedings of the joint international conference on Measurement and modeling of computer systems
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Profile-directed restructuring of operating system code
IBM Systems Journal
Java virtual machine profiler interface
IBM Systems Journal
A computation offloading scheme on handheld devices
Journal of Parallel and Distributed Computing - Special issue on middleware
Automatic Synthesis of High-Speed Processor Simulators
Proceedings of the 37th annual IEEE/ACM International Symposium on Microarchitecture
A Programmable Hardware Path Profiler
Proceedings of the international symposium on Code generation and optimization
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Aspect language features for concern coverage profiling
Proceedings of the 4th international conference on Aspect-oriented software development
A new NAND-type flash memory package with smart buffer system for spatial and temporal localities
Journal of Systems Architecture: the EUROMICRO Journal
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
Merging traces of hardware-assisted data breakpoints
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Frequent Loop Detection Using Efficient Nonintrusive On-Chip Hardware
IEEE Transactions on Computers
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
Software—Practice & Experience
ACM Transactions on Design Automation of Electronic Systems (TODAES)
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
Design and DSP implementation of fixed-point systems
EURASIP Journal on Applied Signal Processing
Measuring empirical computational complexity
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Test-based pointcuts for robust and fine-grained join point specification
Proceedings of the 7th international conference on Aspect-oriented software development
An automatically-generated run-time instrumenter to reduce coverage testing overhead
Proceedings of the 3rd international workshop on Automation of software test
Construction of speculative optimization algorithms
Programming and Computing Software
Software optimization for MPSoC: a mpeg-2 decoder case study
CODES+ISSS '08 Proceedings of the 6th IEEE/ACM/IFIP international conference on Hardware/Software codesign and system synthesis
Characterizing insecure javascript practices on the web
Proceedings of the 18th international conference on World wide web
Next high performance and low power flash memory package structure
Journal of Computer Science and Technology
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
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
MEMOCODE'09 Proceedings of the 7th IEEE/ACM international conference on Formal Methods and Models for Codesign
Development of a high-level simulation approach and its application to multicore video decoding
IEEE Transactions on Circuits and Systems for Video Technology
Sampling-based program execution monitoring
Proceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systems
Taming hardware event samples for FDO compilation
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
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
Profiling of real-world web applications
Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Cache sensitive code arrangement for virtual machine
Transactions on high-performance embedded architectures and compilers III
Evaluation of data-parallel H.264 decoding approaches for strongly resource-restricted architectures
Multimedia Tools and Applications
On frequency analysis of sequential program code execution
Programming and Computing Software
Effective feature set construction for SVM-based hot method prediction and optimisation
International Journal of Computational Science and Engineering
Improving performance through deep value profiling and specialization with code transformation
Computer Languages, Systems and Structures
Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
Jazz2: a flexible and extensible framework for structural testing in a Java VM
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
An overview of the open research compiler
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
An offline approach for whole-program paths analysis using suffix arrays
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
Profiling all paths: A new profiling technique for both cyclic and acyclic paths
Journal of Systems and Software
A new method for program inversion
CC'12 Proceedings of the 21st international conference on Compiler Construction
Plug-n-trust: practical trusted sensing for mhealth
Proceedings of the 10th international conference on Mobile systems, applications, and services
Static profiling of the worst-case in real-time programs
Proceedings of the 20th International Conference on Real-Time and Network Systems
A measurement study of insecure javascript practices on the web
ACM Transactions on the Web (TWEB)
DUA-forensics: a fine-grained dependence analysis and instrumentation framework based on Soot
Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program analysis
Diagnostic tracing for wireless sensor networks
ACM Transactions on Sensor Networks (TOSN)
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
JP2: Call-site aware calling context profiling for the Java Virtual Machine
Science of Computer Programming
Instruction set extensions for dynamic time warping
Proceedings of the Ninth IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis
Hi-index | 0.00 |
This paper describes algorithms for inserting monitoring code to profile and trace programs. These algorithms greatly reduce the cost of measuring programs with respect to the commonly used technique of placing code in each basic block. Program profiling counts the number of times each basic block in a program executes. Instruction tracing records the sequence of basic blocks traversed in a program execution. The algorithms optimize the placement of counting/tracing code with respect to the expected or measured frequency of each block or edge in a program's control-flow graph. We have implemented the algorithms in a profiling/tracing tool, and they substantially reduce the overhead of profiling and tracing.We also define and study the hierarchy of profiling problems. These problems have two dimensions: what is profiled (i.e., vertices (basic blocks) or edges in a control-flow graph) and where the instrumentation code is placed (in blocks or along edges). We compare the optimal solutions to the profiling problems and describe a new profiling problem: basic-block profiling with edge counters. This problem is important because an optimal solution to any other profiling problem (for a given control-flow graph) is never better than an optimal solution to this problem. Unfortunately, finding an optimal placement of edge counters for vertex profiling appears to be a hard problem in general. However, our work shows that edge profiling with edge counters works well in practice because it is simple and efficient and finds optimal counter placements in most cases. Furthermore, it yields more information than a vertex profile. Tracing also benefits from placing instrumentation code along edges rather than on vertices.