1. A method for scheduling instructions executed in a computer system including a processor and a memory subsystem, comprising: measuring pipeline latencies and resource utilization with respect to a randomly selected sampling of the instructions while the instructions are executing; and scheduling instructions according to the measured latencies and resource utilization using an instruction scheduler.