A temporal profiling framework useful for dynamic optimization with hot
data stream prefetching provides profiling of longer bursts and lower
overhead. For profiling longer bursts, the framework employs a profiling
phase counter, as well as a checking phase counter, to control
transitions to and from instrumented code for sampling bursts of a
program execution trace. The temporal profiling framework further
intelligently eliminates some checks at procedure entries and loop
back-edges, while still avoiding unbounded execution without executing
checks for transition to and from instrumented code. Fast hot data stream
detection analyzes a grammar of a profiled data reference sequence,
calculating a heat metric for recurring subsequences based on length and
number of unique occurrences outside of other hot data streams in the
sequence with sufficiently low-overhead to permit use in a dynamic
optimization framework.