by sampling as shown in fig4 data on line 502 represents that function_a from process abc was running during 5 of the 1000 samples data on line 504 represents that function_b from process abc was running during 2 5 of the samples likewise data on line 506 represents that function_c was running during 2 5 of the samples in an embodiment data on line 508 represents that during 90 of samples taken process abc was runnable but not running by collecting information on such processes that are runnable but not running a developer can better determine how to optimize a process application or system this method and apparatus of the present invention potentially prevents a developer from diving into an area for performance optimization where such optimization may not be needed using the technique described in fig2 a developer might conclude that optimizing function_a as shown in fig3 will yield the most improvement however with the data from fig5 if cpu starvation is observed the prudent approach may be to solve the starvation problem before attempting to optimize function_a fig6 is a flow chart illustrating a methodology 600 for an embodiment profiler determining whether a process is runnable but not running methodology 600 could be incorporated into step 424 from fig4 if the identified process in step 416 is not running at the time of interruption in.