1. A method for bounded hash table sorting during dynamic whole program profiling of program code as the program code executes, the method comprising: instrumenting program code to identify a sequence of basic blocks in dynamic program order; storing characterization information corresponding to program regions of the program code in a hash table, said hash table comprising a plurality of buckets wherein each bucket comprises a plurality of entries; and sorting entries of a bucket of the hash table, in response to detecting a timing condition and a table condition are satisfied; wherein detecting the timing condition is satisfied comprises determining an entry of the bucket has been accessed a number of times equal to or greater than a predetermined frequency threshold; and wherein detecting the table condition is satisfied comprises determining the bucket has a number of entries equal to or greater than a predetermined depth threshold.