简体   繁体   English

用C语言测量mili或微秒的时间

[英]Measuring time in mili or microseconds in C Language

I am using Microsoft Visual Studio 2010. I wanted to measure time in micro seconds in C language on windows 7 platform. 我正在使用Microsoft Visual Studio 2010.我想在Windows 7平台上用C语言测量微秒的时间。 How can I do that. 我怎样才能做到这一点。

The way to get accurate time measurements is via performance counters. 获得准确时间测量的方法是通过性能计数器。

In Windows, you can use QueryPerformanceCounter() and QueryPerformanceFrequency() : 在Windows中,您可以使用QueryPerformanceCounter()QueryPerformanceFrequency()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx

EDIT : Here's a simple example that measures the time needed to sum up from 0 to 1000000000: 编辑:这是一个简单的例子,它测量从0到1000000000总和所需的时间:

LARGE_INTEGER frequency;
LARGE_INTEGER start;
LARGE_INTEGER end;

//  Get the frequency
QueryPerformanceFrequency(&frequency);

//  Start timer
QueryPerformanceCounter(&start);

//  Do some work
__int64 sum = 0;
int c;
for (c = 0; c < 1000000000; c++){
    sum += c;
}
printf("sum = %lld\n",sum);


//  End timer
QueryPerformanceCounter(&end);

//  Print Difference
double duration = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart;
printf("Seconds = %f\n",duration);

Output: 输出:

sum = 499999999500000000
Seconds = 0.659352

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM