CCCP: complete calling context profiling in virtual execution environments
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
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
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
Cross-profiling for Java processors
Software—Practice & Experience
@J: towards rapid development of dynamic analysis tools for the Java Virtual Machine
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
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
Performance evaluation of component-based software systems: A survey
Performance Evaluation
Visualizing and exploring profiles with calling context ring charts
Software—Practice & Experience
Diagnosis of application server performance problems via thread level pattern analysis
Proceedings of the First International Workshop on Cloud Computing Platforms
Comprehensive aspect weaving for Java
Science of Computer Programming
Custom-made instrumentation based on static analysis
Proceedings of the Ninth International Workshop on Dynamic Analysis
A metaheuristic approach to test sequence generation for applications with a GUI
SSBSE'11 Proceedings of the Third international conference on Search based software engineering
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
A2-VM: a cooperative Java VM with support for resource-awareness and cluster-wide thread scheduling
OTM'11 Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems - Volume Part I
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
Execution profiling blueprints
Software—Practice & Experience
Concurrency and Computation: Practice & Experience
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
Parallelism profiling and wall-time prediction for multi-threaded applications
Proceedings of the 4th ACM/SPEC International Conference on Performance Engineering
Combining concern input with program analysis for bloat detection
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
Hi-index | 0.00 |
Virtual execution environments, such as the Java virtual machine, promote platform-independent software development. However, when it comes to analyzing algorithm complexity and performance bottlenecks, available tools focus on platform-specific metrics, such as the CPU time consumption on a particular system. Other drawbacks of many prevailing profiling tools are high overhead, significant measurement perturbation, as well as reduced portability of profiling tools, which are often implemented in platform-dependent native code. This article presents a novel profiling approach, which is entirely based on program transformation techniques, in order to build a profiling data structure that provides calling-context-sensitive program execution statistics. We explore the use of platform-independent profiling metrics in order to make the instrumentation entirely portable and to generate reproducible profiles. We implemented these ideas within a Java-based profiling tool called JP. A significant novelty is that this tool achieves complete bytecode coverage by statically instrumenting the core runtime libraries and dynamically instrumenting the rest of the code. JP provides a small and flexible API to write customized profiling agents in pure Java, which are periodically activated to process the collected profiling information. Performance measurements point out that, despite the presence of dynamic instrumentation, JP causes significantly less overhead than a prevailing tool for the profiling of Java code. Copyright © 2008 John Wiley & Sons, Ltd.