在Windows系统环境下,如何使用C语言程序来测量并获取毫秒级的代码执行的时间?
时间: 2024-11-09 15:17:53 浏览: 12
在 Windows 系统环境下,C 语言可以利用 `GetTickCount` 或 `QueryPerformanceCounter` 非高精度或高精度的 API 来测量代码执行时间。
非高精度的方法是使用 `GetTickCount`,它返回自计算机启动以来经过的毫秒数。例如:
```c
#include <windows.h>
#include <stdio.h>
int main() {
unsigned long long start_tick = GetTickCount();
// 你的代码段...
unsigned long long end_tick = GetTickCount();
double milliseconds = (double)(end_tick - start_tick) / 1000;
printf("代码执行时间: %.2f 毫秒\n", milliseconds);
return 0;
}
```
高精度的方法是使用 `QueryPerformanceCounter` 和 `QueryPerformanceFrequency`,它们提供更高的分辨率,但不是所有处理器都支持。例子如下:
```c
#include <windows.h>
#include <iostream>
int main() {
LARGE_INTEGER freq, start_time, end_time;
QueryPerformanceFrequency(&freq); // 获取频率
QueryPerformanceCounter(&start_time); // 记录开始时间
// 你的代码段...
QueryPerformanceCounter(&end_time); // 记录结束时间
double time_diff = ((double)(end_time.QuadPart - start_time.QuadPart)) / freq.QuadPart * 1000;
std::cout << "代码执行时间: " << time_diff << " 毫秒" << std::endl;
return 0;
}
```
阅读全文