我正在尝试测量使用 rdtsc 执行函数“check()”需要多长时间,如下所示:
a = rdtsc();
check(pw);
b = rdtsc();
return (b-a);
但是,我收到的时间差异非常小,我认为这是由于我的编译器(在 Windows 上使用 G++)优化了代码。由于'check()' 不会影响程序的任何其他部分,我认为编译器完全忽略了这个调用。
我读过关于使用称为 asm volatile 的东西来告诉编译器不要优化代码的某个部分,但我不知道如何实现它。
对此有什么帮助吗?