2013
06
13
20
53
[程式] 再談用RDTSC 來做performance測量(3)
之前的寫法在gcc 64bit會有問題~
在網路上找到下面寫法~
#include <stdio.h>
#include <stdint.h>
static inline uint64_t rdtsc(void) { uint32_t eax = 0, edx; __asm__ __volatile__("cpuid;" "rdtsc;" : "+a" (eax), "=d" (edx) : : "%rcx", "%rbx", "memory"); __asm__ __volatile__("xorl %%eax, %%eax;" "cpuid;" : : : "%rax", "%rbx", "%rcx", "%rdx", "memory"); return (((uint64_t)edx << 32) | eax); }