Exploiting hardware performance counters with flow and context sensitive profiling
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
*J: a tool for dynamic analysis of Java programs
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Profiling Java applications using code hotswapping and dynamic call graph revelation
WOSP '04 Proceedings of the 4th international workshop on Software and performance
Proceedings of the 3rd international conference on Aspect-oriented software development
Fast, accurate call graph profiling
Software—Practice & Experience
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
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
Advanced Java bytecode instrumentation
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Measuring the performance of interactive applications with listener latency profiling
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Aspect weaving in standard Java class libraries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Cross-Profiling for Embedded Java Processors
QEST '08 Proceedings of the 2008 Fifth International Conference on Quantitative Evaluation of Systems
Platform-independent profiling in a virtual execution environment
Software—Practice & Experience
CCCP: complete calling context profiling in virtual execution environments
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Flexible calling context reification for aspect-oriented programming
Proceedings of the 8th ACM international conference on Aspect-oriented software development
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
Advanced runtime adaptation for Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Polymorphic bytecode instrumentation
Proceedings of the tenth international conference on Aspect-oriented software development
Self-refining aspects for dynamic program analysis
Proceedings of the tenth international conference on Aspect-oriented software development companion
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
Hi-index | 0.00 |
Many profilers for Java applications are implemented with low-level bytecode instrumentation techniques, which is tedious, error-prone, and complicates maintenance and extension of the tools. In order to reduce development time and cost, we promote building Java profilers using high-level aspect-oriented programming (AOP). We show that the use of aspects yields concise profilers that are easy to develop, extend, and maintain, because low-level instrumentation details are hidden from the tool developer. Our profiler relies on inter-advice communication, an extension to common AOP languages that enables efficient data passing between advice woven into the same method. We illustrate our approach with two case studies. First, we show that an existing, instrumentation-based tool for listener latency profiling can be easily recast as an aspect. Second, we present an aspect for comprehensive calling context profiling. In order to reduce profiling overhead, our aspect parallelizes application execution and profile creation.