IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言-程序耗时计算 -> 正文阅读

[C++知识库]C语言-程序耗时计算

算法耗时处理:
1.time_t:获取1970年1月1日到现在的0区秒数,精确秒
头文件:time.h

使用平台:跨平台
函数声明:time_t time(time_t *t);
代码示例:

time_t start,end;
time(&start);
...
time(&end);


2.clock_t:计时所表示的是占用CPU的时钟单元,精确到毫秒

头文件:time.h

使用平台:跨平台
函数声明:
clock_t clock(void) ;
clock()返回单位是毫秒。如果想返用秒为单位可以用
代码示例:

duration = (finish - start) / CLOCKS_PER_SEC;
double duration;
clock_t start, finish;

start = clock();
...
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;

2.gettimeofday:是Linux下获得当前的秒和微秒的时间
头文件:sys/time.h

使用平台:linux

函数声明:
int gettimeofday(struct ?timeval *tv, struct ?timezone *tz )
当前的时间存放在tv 结构体中,当地时区的信息则放到tz所指的结构体中,tz可以为空。
函数执行成功后返回0,失败后返回-1。
结构体timeval:
struct timeval
{
? long ?tv_sec; ?// 1970年1月1日到现在的秒。
? long ?tv_usec; // 当前秒的微妙,即百万分之一秒。
};
struct timezone
{
? int tz_minuteswest; ?// 和UTC(格林威治时间)差了多少分钟。
? int tz_dsttime; ? ? ?// type of DST correction,修正参数据,忽略
};
代码示例:

struct timeval tv;
struct timezone tz; ? ?
struct tm *t;
? ??
gettimeofday(&tv, &tz);
//printf("tv_sec:%ld\n",tv.tv_sec);
//printf("tv_usec:%ld\n",tv.tv_usec);
//printf("tz_minuteswest:%d\n",tz.tz_minuteswest);
//printf("tz_dsttime:%d\n",tz.tz_dsttime);
t = localtime(&tv.tv_sec);
printf("time_now:%d-%d-%d %d:%d:%d.%ld\n", 1900+t->tm_year, 1+t->tm_mon, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec, tv.tv_usec);

4.GetTickCount:计算从操作系统启动所经过(elapsed)的毫秒数,它的返回值是DWORD。

头文件:winbase.h

使用平台:跨平台(linux有相应的函数对应)

函数原型:
DWORD GetTickCount(void);
返回值以32位的双字类型DWORD存储,因此可以存储的最大值是(2^32-1) ms约为49.71天,因此若系统运行时间超过49.71天时,这个数就会归0
头文件:
C/C++头文件:winbase.h
windows程序设计中可以使用头文件windows.h

程序示例:

DWORD startTime = GetTickCount();//计时开始
...
DWORD endTime = GetTickCount();//计时结束
endTime - startTime ;

4.chrono
https://zhuanlan.zhihu.com/p/269982520


参考:
https://www.cnblogs.com/didiaodidiao/p/9194702.html
https://blog.csdn.net/xiaofei2010/article/details/8489014

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:36:23  更:2021-10-15 11:37:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:15:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码