One could issue periodic timer interrupts and monitor what instructions or what sections of code are
currently executing when the interrupts are delivered. A statistical profile of which pieces of code were active
should be consistent with the time spent by the program in different sections of its code. Once such a
statistical profile has been obtained, the programmer could optimize those sections of code that are
consuming more of the CPU resources.