C++ 中程序计时
C++ 进行程序计时的不同方式
C++ 获取系统日期与时间?
- C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数
- 为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 头文件
- 获取当前系统的日期和时间,包括本地时间和协调世界时(UTC)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using namespace std;
int main( )
{
// 基于当前系统的当前日期/时间
time_t now = time(0);
// 把 now 转换为字符串形式
char* dt = ctime(&now);
cout << "本地日期和时间:" << dt << endl;
tm *ltm = localtime(&now);
// 输出 tm 结构的各个组成部分
cout << "年: "<< 1900 + ltm->tm_year << endl;
cout << "月: "<< 1 + ltm->tm_mon<< endl;
cout << "日: "<< ltm->tm_mday << endl;
cout << "时间: "<< ltm->tm_hour << ":";
cout << ltm->tm_min << ":";
cout << ltm->tm_sec << endl;
}
C++ 如何使用 clock () 函数统计程序运行时间?
clock () 是 C/C++ 中的计时函数
用于统计程序从启动到函数调用占用 CPU 的时间, 即从 “开启这个程序进程” 到 “程序中调用 clock () 函数” 时之间的 CPU 时钟计时单元(clock tick)数,在 MSDN 中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回 - 1。其中 clock_t 是用来保存时间的数据类型
1
2
3
4
5
6
7
clock_t startTime,endTime;
startTime = clock();
//需要测试运行时间的程序段
endTime= clock();
cout << "Totle Time : " << (double)clock() /CLOCKS_PER_SEC<< "s" << endl;注意:当使用 sleep () 函数时,是不会统计 sleep 的时间的
C++ 如何使用 GetTickCount () 函数 统计程序运行时间?
GetTickCount 返回(retrieve)从操作系统启动所经过(elapsed)的毫秒数,它的返回值是 DWORD
1
2
3
4
5
6
DWORD start_time = GetTickCount();
//需要测试运行时间的程序段
DWORD end_time = GetTickCount();
cout << "The run time is:" << (end_time - start_time) << "ms!" << endl;注意事项:(1) 若系统运行时间超过 49.71 天时,这个数就会归 0;(2) 这个函数并非实时发送,而是由系统每 18ms 发送一次,因此其最小精度为 18ms,当需要有小于 18ms 的精度计算时,应使用 StopWatch 方法进行
C++ 如何使用 QueryPerformanceCounter () 函数 统计程序运行时间?
- 返回高精确度性能计数器的值,它可以以微妙为单位计时
1
2
3
4
5
6
7
8
9
LARGE_INTEGER t1,t2,tc;
QueryPerformanceFrequency(&tc);
QueryPerformanceCounter(&t1);
//需要测试运行时间的程序段
QueryPerformanceCounter(&t2);
time=(double)(t2.QuadPart-t1.QuadPart)/(double)tc.QuadPart;
cout<<"time = "<
C++ 如何使用 gettimeofday () 函数 统计程序运行时间?
- linux 环境下的计时函数,把目前的时间由 tv 所指的结构返回,当地时区的信息则放到 tz 所指的结构中
1
2
3
4
5
6
7
8
struct timeval t1,t2;
double timeuse;
gettimeofday(&t1,NULL);
//需要测试运行时间的程序段
gettimeofday(&t2,NULL);
timeuse = (t2.tv_sec - t1.tv_sec) + (double)(t2.tv_usec - t1.tv_usec)/1000000.0;
cout<<"time = "<
C++ 如何使用 system_clock: : now () 函数统计程序运行时间?
1 |
|