代码运行时间的测量方法(linux / windows)

Windows平台下代码运行时间测量方法:

一:毫秒级 GetTickCount()

#include <windows.h>

二:秒级 Time()

#include <time.h>

三:微秒级 QueryPerformanceCounter(&end)

#include <windows.h>

 

Linux平台下时间测量方法:

一:秒级 C语言库函数time()

二:微秒级 C语言库函数 gettimeofday()

本身时间消耗3ms左右

三:纳秒级 RDTSC指令 时间戳计时器

Intel Pentium以上级别的CPU中,有一个称为“Time Stamp”的部件,它以64位无符号整形数的格式,精确的记录自CPU上电以来所经过的时钟周期数。时间戳计数器以机器时钟为单位。1时钟周期 = 1秒 / 主频(Hz)。这些CPU中可以使用 RDTSC (Read Time Stamp Counter)指令来读取,它将时间戳计数器的高32位装入EDX寄存器,低32位存入EAX寄存器。RDTSC指令不被gcc内嵌的汇编直接支持,可采用宏定义来嵌入指令:

#define RDTSC ".byte 0x0f, 0x31\n\t"

posted @ 2014-06-05 14:57  夯爹  阅读(602)  评论(0编辑  收藏  举报