全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

 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小时内与您取得联系。