1. A machine-implemented method for profiling program code comprising: identifying a first set of the instructions for which profiling is desired, wherein the first set of the instructions comprises a subset of all instructions, and wherein identifying the first set of the instructions comprises specifying a particular address range and identifying instructions within the address range as being instructions for which profiling is desired; associating profiling events with each of the first set of instructions; receiving an indication that an instruction has been retired; determining whether the instruction is within the first set of instructions for which profiling is desired; and if the instruction is within the first set, then determining whether a designated event associated with the instruction has occurred or not occurred; and recording the occurrence or not occurrence of the event within a first storage device upon an indication indicating the first storage device is not saturated, wherein the first storage device is a register having an entry for each of a plurality of instruction and event pairs, each entry recording a number of occurrences and a number of not occurrence of a particular event for a particular instruction.