代码中打点的宏(伪代码)
#define HEAD() uint64_t start_time = 0; uint64_t end_time = 0; uint32_t dt = 0
#define START() start_time = rdtsc()
#define END(time) do{ \
end_time = rdtsc(); \
dt = tsc_to_us(end_time - start_time); \
if (dt > time) \
{ \
log_error("WARNING:%s: exceeding time limit dt=%u\n", __FUNCTION__, dt); \
} \
}while(0)
使用方法
int main()
{
int count = 2000000;
HEAD();
while(count >=0)
{
count--;
}
END(20);
return 0;
}