This module provides the function rdtsc for accessing
the rdtsc machine register on modern IA-32 processors. This is
a 64-bit counter which counts the number of processor cycles since
the machine has been powered up. Using this instruction, you can
make very precise time measurements which are independent of the
actual CPU frequency. But note that you can get strange results
sometimes on a superscalar processor.
Also note that the Haskell foreign function interface imposes some
additional overheads. On my machine, it takes about 950 cycles to
call this function twice and to compute the difference, whereas in
C the overhead is only about 88 cycles.
|