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 ;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • C++如何实现简单的计时器详解

    实现分析 首先我们先分析一下计时器的一些功能,简单一点的计时器包括开始.暂停.停止和显示基本功能,这些功能以C++面向对象的编程思想(OOP)进行抽象,就是计时器类(Timer)的4个成员函数,当然我们要把这些函数作为公有的,因为它们是留给外部的接口(interface). 然后我们再分析一下计时器的三种状态:停止,正在运行,暂停(注意:暂停不是停止),那么怎么记录计时器的三种状态呢? 这里我们用布尔类型的变量记录计时器的三种状态,分别为bool is_pause,bool is_stop,在这

  • 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

  • shell 命令统计代码行数的简单代码

    分享一个统计代码行的shell命令: find . "(" -name ".java" -or -name ".html" -or -name ".js" -or -name ".css" ")" -print | xargs wc -l 根据不同的项目类型,不同的目录,自行修改. 如果内容多,可以: find . "(" -name ".java"

  • python 统计代码行数简单实例

     python 统计代码行数简单实例 送测的时候,发现需要统计代码行数 于是写了个小程序统计自己的代码的行数. #calclate_code_lines.py import os def afileline(f_path): res = 0 f = open(f_path) for lines in f: if lines.split(): res += 1 return res if __name__=='__main__': host = 'E:'+os.sep+'develop'+os.s

  • iOS统计代码总行数的命令(便捷且简单)

    我们有时候想要统计一下我们的工程的总代码行数,来获取一些成就感或者作为别的用图,这里就介绍一些如何便捷地统计代码的行数,非常简单,方法如下: 1.打开终端: 2.通过cd命令到达我们的工程文件,这里注意如果要避免统计引用的第三方库的代码量,我们就要进一步进到我们自己写的代码文件中去,一般是一个与工程文件同名的文件: 3.统计代码行数: 如果想列出每个文件的行数,输入命令: find.-name"*.m"-or-name"*.h"-or-name"*.xib

  • Java统计代码的执行时间的N种方法

    目录 方法一:System.currentTimeMillis 方法二:System.nanoTime 方法三:new Date 方法四:Spring StopWatch 方法五:commons-lang3 StopWatch 方法六:Guava Stopwatch 原理分析 1.Spring StopWatch 原理分析 2.Google Stopwatch 原理分析 结论 总结 知识扩展—Stopwatch 让统计更方便 在日常开发中经常需要测试一些代码的执行时间,但又不想使用向 JMH(J

  • PHP实现记录代码运行时间封装类实例教程

    前言 本文介绍的是利用php记录代码运行时间测量的相关内容,分享给大家供大家参考学习.一般在要求性能的代码中, 会加入测试代码进行计算.不过每次都要写microtime, end – start 未必太麻烦了, 所以简单的写了一个类去搞,下面来看看详细的介绍: 示例代码 class TimeCost { private $cost = array(); private $record = array(); private $scale = 6; public function __constru

  • c语言实现词频统计的简单实例

    需求: 1.设计一个词频统计软件,统计给定英文文章的单词频率. 2.文章中包含的标点不计入统计. 3.将统计结果以从大到小的排序方式输出. 设计: 1.因为是跨专业0.0···并不会c++和java,只能用仅学过的C语言进行编写,还是挺费劲的. 2.定义一个包含单词和频率两个成员的结构体来统计词频(进行了动态分配内存,可以处理较大文本). 3.使用fopen函数读取指定的文档. 4.使用fgetc函数获取字符,再根据取得的字符是否是字母进行不同的处理. 5.采用快速排序法对统计结果进行排序. 5

  • php 广告点击统计代码(php+mysql)

    php 广告点击统计代码,昨天晚上有几个IDC网想与本站合作放些广告,但是我想看看广告效果后想了就写了一个简单的广告统计代码了,这里只是等的统计不能IP限制或是恶心点击等等了. 先来创建数据库. CREATE TABLE IF NOT EXISTS `ad_count` ( `ad_id` int(8) NOT NULL auto_increment, `ad_hit` int(8) NOT NULL default '0', `ad_name` varchar(200) character s

  • 如何基于python测量代码运行时间

    这篇文章主要介绍了如何基于python测量代码运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python 社区有句俗语: "python自己带着电池" ,别自己写计时框架. Python3.2具备一个叫做 timeit 的完美计时工具可以测量python代码的运行时间. timeit 模块: timeit 模块定义了接受两个参数的 Timer 类.两个参数都是字符串. 第一个参数是你要计时的语句或者函数. 传递给 Timer

  • Python统计文本词汇出现次数的实例代码

    问题描述 有时在遇到一个文本需要统计文本内词汇的次数 的时候 ,可以用一个简单的python程序来实现. 解决方案 首先需要的是一个文本文件(.txt)格式(文本内词汇以空格分隔),因为需要的是一个程序,所以要考虑如何将文件打开而不是采用复制粘贴的方式.这时就要用到open()的方式来打开文档,然后通过read()读取其中内容,再将词汇作为key,出现次数作为values存入字典. 图 1 txt文件内容 再通过open和read函数来读取文件: open_file=open("text.txt

随机推荐