Patent ID: 6230313
Filing Date: 2001-05-08
Classification: G06F

Abstract:
A computer-implemented method for analyzing performance of execution of a task by a computer system, the computer system with a processor having multiple streams for executing multiple threads of the task, the analyzing using trace information generated during the execution including values of variables maintained by the hardware of the computer system or by software executing on the computer system, the method comprising:receiving an indication of a program for which performance of execution of the program as a task on the computer system is to be analyzed;generating an executable version of the program by receiving an indication from a user to generate trace information of a specified type at a specified location of the program;automatically identifying a plurality of locations of the program at which to generate trace information of specified types; andcompiling the program to create the executable version, the compiling such that groups of instructions are added to the program at the specified location and at the plurality of identified locations, the added instructions to generate trace information of the specified types when executed;generating the trace information by executing the executable version on the computer system as a task, the executing performed by multiple streams executing multiple threads of the task, the execution of each added group of instructions to generate current values of the variables as part of the generated trace information;analyzing the generated trace information to extract execution information of interest byusing a description of the specified types of trace information to group the generated trace information into events each reflecting execution of a group of added instructions;when information for an event is separated in the generated trace information, creating a mapping to assist in retrieving the information for the event;modifying the generated current values of the events so as to be normalized with respect to beginning of execution of the task;modifying the generated current values of the events so that the values reflect only the execution of the task;receiving an indication of the execution information of interest, the indicated execution information including at least one of the variables; andusing the event groupings and the created mapping to extract the modified generated current values for the execution information of interest including the at least one of the variables;displaying to a user the extracted execution information of interest; andin response to a user request, modifying the extracted execution information being displayed.