如何计算周期?

Der*_*unk 7 c performance assembly

我试图在C中找到2个小函数的相对优点.一个通过循环添加,一个通过显式变量添加.这些功能本身无关紧要,但我希望有人教我如何计算周期以便比较算法.因此f1将需要10个周期,而f2将需要8个.这就是我想要做的那种推理.此时没有性能测量(例如gprof实验),只是很好的旧指令计数.

有没有办法做到这一点?有工具吗?文档?我正在编写C,gcc在x86架构上进行编译.

Any*_*orn 8

http://icl.cs.utk.edu/papi/

PAPI_get_real_cyc(3) - 返回自某个任意起点以来的总循环数


GJ.*_*GJ. 5

汇编器指令rdtsc(读取时间戳计数器)在EDX中重新调整:EAX寄存当前CPU滴答计数,在CPU复位时启动.如果你的CPU以3GHz运行,那么一个滴答是1/3GHz.

编辑:在MS窗口下,API调用QueryPerformanceFrequency返回每秒的滴答数.