BlockFrequencyInfo calculates block frequencies as Scaled64 numbers but as a last step converts them to unsigned 64bit integers (`BlockFrequency`). This improves the factors picked for this conversion so that: * Avoid big numbers close to UINT64_MAX to avoid users overflowing/saturating when adding multiply frequencies together or when multiplying with integers. This leaves the topmost 10 bits unused to allow for some room. * Spread the difference between hottest/coldest block as much as possible to increase precision. * If the hot/cold spread cannot be represented loose precision at the lower end, but keep the frequencies at the upper end for hot blocks differentiable.
13 lines
120 B
Plaintext
13 lines
120 B
Plaintext
# IR level Instrumentation Flag
|
|
:ir
|
|
foo
|
|
# Func Hash:
|
|
844982796158316421
|
|
# Num Counters:
|
|
4
|
|
# Counter Values:
|
|
139
|
|
5
|
|
20
|
|
63
|