Window系统下C/C++程序毫秒和微秒级程序运行时间的获取方法_large_integer nfreq, t1, t2;-程序员宅基地

技术标签: # C/C++编程语言学习之路  

一、使用clock()函数,获取毫秒级(ms)时间[1]

#include <time.h>//clock()头文件

clock_t start = clock();

   {statement section}//测试代码段

clock_t end = clock();

printf("the running time is :%fs\n", (double)(end -start)/(double)CLOCKS_PER_SEC); //秒

 

二、基于CPU级的方法,获取微秒级(us)时间[2,3]

#include <stdio.h>
#include <windows.h>//头文件

LARGE_INTEGER nFreq;

LARGE_INTEGER t1;

LARGE_INTEGER t2;

double dt;

 QueryPerformanceFrequency(&nFreq);
 QueryPerformanceCounter(&t1);

      {statementsection}//测试代码段
  QueryPerformanceCounter(&t2);
  dt = (t2.QuadPart - t1.QuadPart) / (double)nFreq.QuadPart;
  cout<<"Running time :"<<dt*1000<<"ms"<<endl;//dt结果乘以1000,将显示时间调整到ms级别显示,乘以1000000,将显示时间调整到us级别显示

备注:可以在代码段添加Sleep()函数测试,如下两个测试实例。

例1:500ms

time_t start = clock();
   Sleep(1000);//500ms
time_t end = clock();
printf("the running time is :%fms\n", (double)(end -start));

运行结果,如下:

the running time is :1001.000000ms

例2: 5ms测试 

 LARGE_INTEGER  nFreq,t1,t2;
double dt;
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&t1);
Sleep(5);//5ms,其中1ms=1000us
QueryPerformanceCounter(&t2);
 dt = (t2.QuadPart - t1.QuadPart)/(double)nFreq.QuadPart;
cout<<"Running time : "<<dt*1000000<<"us"<<endl;

运行结果,如下:

Running time : 5162.22us
--------------------- 
作者:泡泡徐 
来源:CSDN 
原文:https://blog.csdn.net/xpplearnc/article/details/53894048 
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a8039974/article/details/88072193

智能推荐

攻防世界 insanity_攻防世界insanity-程序员宅基地

文章浏览阅读97次。insanity:首先启动题目,给了一个不知道格式的文件于是利用exeinfo 打开:发现它是ELF文件,且是32bit,于是利用,IDA打开得到:在查看字符串,按快捷键shift+f12得到flag:_攻防世界insanity

qt6.2 开发遇坑记_qt6 如何支持win7-程序员宅基地

文章浏览阅读1.1k次。一、第一道坑文档过时开发部分文档总是和代码对不上,我的qt最开始是在线安装包安装的,提示文档里面明明有的函数,用了编译却总是不能过,没办法,只能用原生c++,简直是泪崩,各种依赖库加苦二、第二道坑 c++通病依赖库qt过之不及build运行和debug运行都是正常的,一旦发布就是少各种dll,用windeployqt自动copy了dll之后运行闪退,手动copy了mingw目录下的plugins,modules,qml文件夹,终于跑起来了,兴奋的打包发测,结果..._qt6 如何支持win7

# 行动、任务、项目概念区分_工作中的todo指什么-程序员宅基地

文章浏览阅读5.8k次。行动、任务、项目概念区分1、行动(todo或action)行动就是确定时间节点,可以立即去做的事情。行动容易操作和衡量。2、任务(task)任务通常指所接受的工作,所担负的职责,是指为了完成某个有方向性的目的而产生的活动。任务有明确的执行目标和执行人,相比于项目,任务侧重于结果,也会有时间的约束性。任务里面可以嵌套任务,即一个主任务下面可以细分成若干个子任务,由这些子任务的完成结果组成为主..._工作中的todo指什么

Python读写xml文件_python xml读写保留编码-程序员宅基地

文章浏览阅读424次。python读写xml文件时会删除xml文件第一行的声明_python xml读写保留编码

( 图论专题 )【 最大费用最大流 】-程序员宅基地

文章浏览阅读2.6k次。( 图论专题 )【 最大费用最大流 】【 最大费用最大流 】只需要将【 最小费用最大流 】的w取相反数就好了,最后的mincost( 最小费用 )也取相反数就是最大费用了。( 图论专题 )【 最小费用最大流 】例题:HDU - 643710 3 1 101 5 1000 05 10 1000 1第一行n,m,K,M, 每天n个小时,m个视频,K个人,观看相同视频时失去W幸福值。接下来m行,每行S,T,w,op四个正整数,dii个视频的开始时间,结束时间,看完得到的幸福值,.._最大费用最大流

C语言再学习 -- 段错误(核心已转储)_c语言中的段错误是什么意思-程序员宅基地

文章浏览阅读6.1w次,点赞80次,收藏332次。参看:Linux下的段错误产生的原因及调试方法参看:Linux环境下段错误的产生原因及调试方法小结参看:维基百科--Segmentation fault参看:LINUX内核段错误调试详细指南精品培训PPT讲义一、什么是段错误?一旦一个程序发生了越界访问,cpu 就会产生相应的保护,于是 segmentation fault 就出现了,通过上面的解释,段错误应该就是访问了不可访问的内存,这个内存区要_c语言中的段错误是什么意思

随便推点

基于JAVA电子商务网上户外用品购物商城电商系统设计与实现(Springboot框架)研究背景和意义、国内外现状_户外露营用品电商系统研究背景-程序员宅基地

文章浏览阅读3.2k次,点赞23次,收藏26次。基于JAVA电子商务网上户外用品购物商城电商系统设计与实现(Springboot框架)研究背景和意义、国内外现状,而电子商务通过提供线上购物平台,能够方便消费者随时随地进行购物,并且提供更多的商品选择和更便宜的价格。这些平台提供了丰富的户外用品商品,包括露营装备、登山用品、徒步鞋等,并且提供了更加详细的产品信息和用户评价,帮助消费者做出更准确的购买决策。因此,通过研究和实现这样一款系统,能够填补这一空白,为消费者提供更便捷、高效的购物体验,并且为户外用品行业的发展做出积极贡献。_户外露营用品电商系统研究背景

VS中Windows界面开发_vs写界面-程序员宅基地

文章浏览阅读9.2k次。1.环境:vs2017,.net4.52.步骤:(1)打开vs2017,新建项目Windows窗体应用(.NET Framework),新建后会出现一个Form1的窗体;(2)打开工具箱,将公共控件中的Label、Button、TextBox控件拉入窗体中,在右边属性栏中更改名字;(3)双击button控件,进入代码编辑器,并触发button控件的Click事件,即点击button按钮..._vs写界面

day01 windows编程入门-程序员宅基地

文章浏览阅读1.7k次,点赞5次,收藏16次。我们以前见过double,int,long,我们都可以很清晰的知道他们是什么意思,但是这玩意可读性这么差,而且还都是大写,怎么记得住啊。你可以会觉得,这是什么鬼,怎么这么多参数,我们以前写的C++的mina最多也就两个参数啊,但是,你必须接受这个现实,windows编程有非常多的复杂概念,和非常复杂的声明等等。Windows编程的本质就是使用好操作系统,想要用好操作系统必不可少的秘籍----MSDN。我们已经完成了第一个窗口的实例,接下来我们将学习如何编写一个正规的第一个窗口。_windows编程入门

给已有的linux系统增加磁盘容量_linux系统如何追加一个硬盘容量-程序员宅基地

文章浏览阅读309次。【代码】给已有的linux系统增加磁盘容量。_linux系统如何追加一个硬盘容量

操作系统的安全管理_安全操作系统设计技术(tcb)-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏24次。OS的安全管理_安全操作系统设计技术(tcb)

Bash字符串处理(与Java对照) - 10.判断两个字符串是否相等(不等)-程序员宅基地

文章浏览阅读438次。Bash字符串处理(与Java对照) - 10.判断两个字符串是否相等(不等)In JavaString.equals &amp; String.equalsIgnoreCaseboolean equals(Object anObject) 比较此字符串与指定的对象。 boolean equalsIgnoreCase(Strin..._bash字符串相等