×

Method and apparatus for correlating profile data

  • US 8,065,665 B1
  • Filed: 05/06/2004
  • Issued: 11/22/2011
  • Est. Priority Date: 02/28/2004
  • Status: Active Grant
First Claim
Patent Images

1. An apparatus providing a software tool encoded in at least one non-transitory machine-readable storage medium, comprising:

  • a first set of instructions, stored in at least one machine-readable storage medium and executable by at least one processing unit, that collects profile data during execution of code by;

    incrementing a hardware counter when at least one runtime event associated with the hardware counter is detected during the execution of the code;

    sampling the at least one runtime event when the hardware counter exceeds a threshold during the execution of the code;

    determining an instruction instance that corresponds to the at least one runtime event by backtracking from a first point in the code that coincides with the detection of the at least one runtime event that caused the hardware counter to exceed the threshold to a second point in the code that is associated with the at least one runtime event;

    decoding the corresponding instruction instance to determine a data address indicated by the corresponding instruction instance;

    validating the data address; and

    in response to validating the data address, recording the at least one runtime event, the associated instruction instance data address, and a plurality of code behavior attributes associated with the data address based on an inline annotation of the instruction instance comprising a context index of a construct table to identify a source-level language construct that represents a source-level data object associated with the at least one run-time event, the source level-language construct being one of the plurality of code behavior attributes;

    a second set of instructions, stored in the at least one machine-readable storage medium and executable by the at least one processing unit, that aggregates code execution hindrances from the profile data collected during the execution of the code based, at least in part, on a first code behavior attribute of the plurality of code behavior attributes;

    a third set of instructions, stored in the at least one machine-readable storage medium and executable by the at least one processing unit, that filters the aggregated code execution hindrances based on one or more instances of the first code behavior attribute; and

    a fourth set of instructions, stored in the at least one machine-readable storage medium and executable by the at least one processing unit, that aggregates the filtered code execution hindrances based, at least in part, on a second code behavior attribute of the plurality of code behavior attributes to correlate code execution hindrances with the first code behavior attribute and the second code behavior attribute.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×