CPU时间戳获取

inline long long timt(){
	long long p; int&a=*(((int*)&p)+1);
	__asm__ __volatile__("rdtsc":"=a"(p),"=d"(a));
	return p;
}

因为在64位CPU上rdtsc出来的结果仍然是在%eax和%edx,而%rax却不是由%eax和%edx拼起来的(反正我试了它没用...也许是我写错了?)那么似乎只能这么干了..
执行这么一次大概需要60个CPU周期...(其实还是非常快的)

posted @ 2015-12-26 20:15  zball  阅读(500)  评论(0编辑  收藏  举报