是否可以在C程序中获得代码的精确个CPU周期数?
我尝试使用C函数clock
和程序集rdtsc
,但我只有一个非常粗略的近似值,即使使用循环,我也无法获得足够的精确度。
您可以在下面找到我尝试过的代码(失败)。例如,为了获得增量的循环,我想做
clk("++foo") - clk("")
希望得到“1”。
#define __clk(x) tmp=clock() ;\
x;\
return abs(tmp-clock());
inline int clk(char* x)
{
__clk(x)
}
你知道有没有办法得到我想要的东西?我目前在Debian上做C,但如果需要我也有一个Windows系统,如果只有另一种语言提供解决方案,那不是问题。