Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
UNIX internals: the new frontiers
UNIX internals: the new frontiers
Evaluating architectures for multithreaded object request brokers
Communications of the ACM
Advanced CORBA programming with C++
Advanced CORBA programming with C++
Monitors: an operating system structuring concept
Communications of the ACM
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
A Portable Programming Interface for Performance Evaluation on Modern Processors
International Journal of High Performance Computing Applications
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
An examination of the run-time performance of GUI creation frameworks
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Portable and accurate sampling profiling for Java
Software—Practice & Experience - Research Articles
Using Java method traces to automatically characterize and model J2EE server applications
Proceedings of the 38th conference on Winter simulation
Kieker: continuous monitoring and on demand visualization of Java software behavior
SE '08 Proceedings of the IASTED International Conference on Software Engineering
THOR: a performance analysis tool for java applications running on multicore systems
IBM Journal of Research and Development
EJBMemProf – a memory profiling framework for enterprise javabeans
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
Hi-index | 0.00 |
Over the past few years, Java has evolved into a mature platform for developing enterprise applications. A critical factor for the commercial success of these applications is end-to-end performance, e.g., in terms of response times, throughput and availability. This raises the need for the development, validation and analysis of performance models to predict performance metrics of interest. To develop and validate performance models, insight in the execution behavior of the application is essential, requiring advanced monitoring capabilities.In this paper we introduce our Java Performance Monitoring Toolkit (JPMT). JPMT represents internal execution behavior of Java applications by event traces. An event represents the occurrence of some activity, such as thread creation, method invocation, and locking contention. Events are annotated by high-resolution performance attributes, e.g., duration of locking contention and CPU time usage by method invocations. JPMT is an open toolkit, its event trace API can be used to develop custom performance analysis applications. JPMT comes with an event trace visualizer and a command-line event trace query tool for scripting. JPMT supports event filtering during and after application execution. The instrumentation required for monitoring the application is added transparently to the user during run-time. Overhead is minimized by only instrumenting for events the user is interested in. Furthermore, the instrumentation itself is carefully optimized.This paper discusses the architecture and implementation of the toolkit in detail and reports on our experience in applying the toolkit to model a CORBA implementation.