1. A system, comprising: a least one processor; a main memory operatively connected to the at least one processor; at least one cache operatively connected to the main memory and the at least one processor; a program software to be executed by the at least one processor, the program software includes at least one marker; and a marker management engine operatively connected to the at least one processor, the main memory, and the at least one cache; wherein the marker management engine (a) monitors when each of the at least one marker is reached in the execution of the program software, (b) monitors data accesses by the at least one processor to the at least one cache and the main memory, (c) stores at least one of the monitored data accesses in a pre-defined location in the main memory, and (d) optimizes the program software executed by the at least one processor based on the stored data accesses.