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"
时间: 2024-11-09 09:56:01