|
Boost : |
From: Johan Råde (rade_at_[hidden])
Date: 2008-06-09 15:31:42
dherring_at_[hidden] wrote:
> The CPU timestamp counter is a high-resolution clock source useful for
> profiling code or controlling tight timing loops. AMD/Intel CPUs support
> this via the RDTSC opcode, and other CPUs often provide similar
> functionality.
>
> Apparently MS compilers support an __rdtsc() intrinsic, but I couldn't
> find one for gcc.
MSVS 8.0 and higher have the __rdtsc intrinsic.
Om earlier versions of MSVC you can use the following inline assembler:
inline uint64_t clockCycleCount()
{
uint64_t ccc;
__asm {
cpuid // serialize processor
rdtsc // read time stamp counter
mov dword ptr [ccc + 0], eax
mov dword ptr [ccc + 4], edx
}
return ccc;
}
I agree that a platform independent version would be useful.
--Johan Råde
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk