Browse Prior Art Database

Method to determine bad performance impacts of breakpoints

IP.com Disclosure Number: IPCOM000174099D
Original Publication Date: 2008-Aug-26
Included in the Prior Art Database: 2008-Aug-26
Document File: 2 page(s) / 22K

Publishing Venue

IBM

Abstract

This invention provides methods to identify the hot routines in multi-threaded applications. Hot routines are routines in a threaded application which is called by multiple threads and are CPU intensive. Before customers add a breakpoint in a hot routine, the debugger will warn customers that adding breakpoints in at this location may slow down the system. Customers may then determine another area to set the breakpoint that may have less impact on the overall throughput and still allow them to debug.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 82% of the total text.

Page 1 of 2

Method to determine bad performance impacts of breakpoints

In many cases, handling traps is an error situation, and normally trap handling has not been tuned forperformance within the hardware and operating systems in the same way more mainline paths have been. Plus, a realistic trap handler for a debugger could easily take 30,000 instructions to handle the trap and ignore the breakpoint which in our example above would raise the performance requirements by 240X to maintain the same throughput as before the breakpoint was set with in the loop.

First,this invention needs to determine all the thread routines which are called by more than one thread, and then save them into thread route table(TRT). There are many ways to do this, and most of these would be done at compile time and incorporated into the debug data.

Comon performance data is able to tell us if the data came from multiple threads for a given line. Typically performance data is gathered by sampling the PC every so many milliseconds to see where it's at. The more samples that occur within a given line the more execution time that line takes. In addition to just the location the PC is at the active thread can also besaved. This way we would know if a routine was run by multiple threads within the application.

This information can be used directly by the debugger to warn the user. So whe...