C++实现统计代码运行时间计时器的简单实例

一、前言
这里记下从网上找到的一些自己比较常用的C++计时代码
二、Linux下精确至毫秒
#include <sys/time.h>
#include <iostream>
#include <time.h>
double get_wall_time()
{
struct timeval time ;
if (gettimeofday(&time,NULL)){
return 0;
}
return (double)time.tv_sec + (double)time.tv_usec * .000001;
}
int main()
{
unsigned int t = 0;
double start_time = get_wall_time()
while(t++<10e+6);
double end_time = get_wall_time()
std::cout<<"循环耗时为:"<<end_time-start_time<<"ms";
return 0;
}
三、Windows下精确至毫秒
#include <windows.h>
#include <iostream>
int main()
{
DWORD start, stop;
unsigned int t = 0;
start = GetTickCount();
while (t++ < 10e+6);
stop = GetTickCount();
printf("time: %lld ms\n", stop - start);
return 0;
}
试验中,发现貌似getTickCount函数会有10几毫秒的误差,囧。。。
四、Windows下精确至微秒
//MyTimer.h//
#ifndef __MyTimer_H__
#define __MyTimer_H__
#include <windows.h>
class MyTimer
{
private:
int _freq;
LARGE_INTEGER _begin;
LARGE_INTEGER _end;
public:
long costTime; // 花费的时间(精确到微秒)
public:
MyTimer()
{
LARGE_INTEGER tmp;
QueryPerformanceFrequency(&tmp);//QueryPerformanceFrequency()作用:返回硬件支持的高精度计数器的频率。
_freq = tmp.QuadPart;
costTime = 0;
}
void Start() // 开始计时
{
QueryPerformanceCounter(&_begin);//获得初始值
}
void End() // 结束计时
{
QueryPerformanceCounter(&_end);//获得终止值
costTime = (long)((_end.QuadPart - _begin.QuadPart) * 1000000 / _freq);
}
void Reset() // 计时清0
{
costTime = 0;
}
};
#endif
//main.cpp
#include "MyTimer.h"
#include <iostream>
int main()
{
MyTimer timer;
unsigned int t = 0;
timer.Start();
while (t++ < 10e+5);
timer.End();
std::cout << "耗时为:" << timer.costTime << "us";
return 0 ;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C++实现统计代码运行时间计时器
# C++
# 时间计时器的实现
# Linux C/C++ timeout命令实现运行具有时间限制功能
# C++实现统计代码运行时间的示例详解
# 详解如何在C/C++中测量一个函数或功能的运行时间
# C++中测试程序运行时间的几种方法总结
# 会有
# 计时器
# 希望能
# 谢谢大家
# 网上
# NULL
# return
# tv_sec
# struct
# gettimeofday
# timeval
# amp
# start_time
# unsigned
# end_time
# tv_usec
# main
# int
# class
# pre
相关文章:
5种Android数据存储方式汇总
行程制作网站有哪些,第三方机票电子行程单怎么开?
简单实现Android文件上传
python的本地网站制作,如何创建本地站点?
微信推文制作网站有哪些,怎么做微信推文,急?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何选购建站域名与空间?自助平台全解析
如何有效防御Web建站篡改攻击?
建站之星备案流程有哪些注意事项?
PHP 500报错的快速解决方法
宝塔新建站点报错如何解决?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
高防服务器如何保障网站安全无虞?
建站之星如何实现PC+手机+微信网站五合一建站?
如何配置IIS站点权限与局域网访问?
制作宣传网站的软件,小红书可以宣传网站吗?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
定制建站是什么?如何实现个性化需求?
XML的“混合内容”是什么 怎么用DTD或XSD定义
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
Python文件管理规范_工程实践说明【指导】
股票网站制作软件,网上股票怎么开户?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何通过西部建站助手安装IIS服务器?
建站之星各版本价格是多少?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何确保FTP站点访问权限与数据传输安全?
做企业网站制作流程,企业网站制作基本流程有哪些?
如何在云虚拟主机上快速搭建个人网站?
太平洋网站制作公司,网络用语太平洋是什么意思?
视频网站制作教程,怎么样制作优酷网的小视频?
linux top下的 minerd 木马清除方法
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
h5网站制作工具有哪些,h5页面制作工具有哪些?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何通过VPS搭建网站快速盈利?
如何彻底删除建站之星生成的Banner?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何选择最佳自助建站系统?快速指南解析优劣
济南网站制作的价格,历城一职专官方网站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何在阿里云完成域名注册与建站?
小建面朝正北,A点实际方位是否存在偏差?
宝塔建站无法访问?如何排查配置与端口问题?
建设网站制作价格,怎样建立自己的公司网站?
如何基于云服务器快速搭建个人网站?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
专业网站建设制作报价,网页设计制作要考什么证?
*请认真填写需求信息,我们会在24小时内与您取得联系。