Patent ID: 7698397

Claim:
A performance counter framework for rendering software performance counter data in a computer system, the performance counter framework comprising: a processor; an operating system executed by the processor; computer-readable storage media including computer-readable instructions and program modules executable by the processor; a performance counter provider application process executed by the processor and stored on the computer-readable storage media, the performance counter provider application process enabled to generate raw performance counter information corresponding to software performance in the computer system; a performance counter consumer application process executed by the processor and stored on the computer-readable storage media, the performance counter consumer application process enabled to receive and process the raw performance counter information generated by the performance counter provider application process; a counter provider application program interface (API) of the operating system, stored on the computer-readable media, called by the performance counter provider application process, and enabled to: register a description corresponding to the performance counter provider application process with the operating system for storage in a repository, the repository being located external to both the performance counter provider application process and the performance counter consumer application process; allocate a performance counter structure within an address space of the performance counter provider application process, the address space designated by the operating system; automatically assign, with the counter provider application process, an access function for retrieving performance counter data from the performance counter structure, the access function enabled to be invoked via the operating system by the performance counter consumer application process; during a run-time of the performance counter provider application process, register a performance counter provider dataset including referencing the description from the repository via a GUID (Globally Unique Identifier) of the performance counter provider application process; and provide a counter query function called by the performance counter consumer application process and enabled to: extract the GUID of the performance counter provider application process from the repository, and retrieve counter data corresponding to the GUID of the performance counter provider application process from the performance counter structure within the address space of the performance counter provider application process by invoking the access function via the operating system.