C++实现统计代码运行时间计时器的简单实例
发布时间 - 2026-01-11 02:14:50 点击率:次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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
香港服务器租用费用高吗?如何避免常见误区?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel定时任务怎么设置_Laravel Crontab调度器配置
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
Laravel如何优化应用性能?(缓存和优化命令)
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
如何基于云服务器快速搭建个人网站?
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel如何处理异常和错误?(Handler示例)
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Swift中swift中的switch 语句
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
如何快速查询域名建站关键信息?
怎么用AI帮你为初创公司进行市场定位分析?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel安装步骤详细教程_Laravel环境搭建指南
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
javascript读取文本节点方法小结
微信小程序 scroll-view组件实现列表页实例代码
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
如何在阿里云购买域名并搭建网站?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
如何在建站宝盒中设置产品搜索功能?
利用vue写todolist单页应用
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
如何在阿里云服务器自主搭建网站?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何在Ubuntu系统下快速搭建WordPress个人网站?
微信小程序 canvas开发实例及注意事项
北京专业网站制作设计师招聘,北京白云观官方网站?
javascript基于原型链的继承及call和apply函数用法分析
进行网站优化必须要坚持的四大原则
Laravel如何使用Gate和Policy进行授权?(权限控制)
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
微信推文制作网站有哪些,怎么做微信推文,急?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
Android自定义listview布局实现上拉加载下拉刷新功能
利用JavaScript实现拖拽改变元素大小
如何在橙子建站中快速调整背景颜色?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】

