Browse Prior Art Database

User-level Sampling Using Thread Entry and Exit Events

IP.com Disclosure Number: IPCOM000172859D
Original Publication Date: 2008-Jul-16
Included in the Prior Art Database: 2008-Jul-16
Document File: 1 page(s) / 25K

Publishing Venue

IBM

Abstract

A method for maintaining and utilizing thread based call stacks using Java entry/exit events to maintain Interpreted versus JITed state

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 88% of the total text.

Page 1 of 1

User-level Sampling Using Thread Entry and Exit Events

Disclosed is a method for maintaining and utilizing thread based call stack information using entry/exit events that identify the method calls or entries as being to Interpreted or Just-In-Time (JITed) compiled methods.

Using the existing IBM(*) extensions to the Java(**) Virtual Machine (JVM) Application Programming Interfaces (APIs) supported in the Java Virtual Machine Profiling Interface (JVMPI) or the Java Virtual Machine Tools Interface (JVMTI), the entry events distinguish between an entry to a JITed method or a method that is being executed interpretively. This information is helpful in analyzing the time spent executing in individual methods and provides more details regarding the opportunities for improving performance.

By enabling the IBM extensions for entry/exit events, thread based call stacks are maintained for each monitored thread by pushing the entry event information onto a stack in memory and popping the information off the stack when the exit event occurs. Specific conditions may be monitored, such as, the number of instructions between two events or the number of bytes allocated by monitoring object allocation events. When the monitored conditions occur, the maintained calling sequence can be used to walk the information into a thread based call tree where a counter in the leaf node of the tree is incremented to indicate a sample occurred. Reports...