/* * Linux/Windows 系统高精度计时器 */#ifndef __LX_TIMER_H__
#define __LX_TIMER_H__  #ifdef WIN32  #include #elif linux  #include #endif  class LxTimer
{
public:  LxTimer();  void   start();  double stop();   // 返回从 start 到 stop 所经历的时间(单位:秒)  private:
#ifdef  WIN32  double dSystemFreq;   BOOL   flag;  double dStartTime;  double dStopTime;
#elif  linux  struct timeval tvStart;  struct timeval tvStop;
#endif
};  #endif
#include "LxTimer.h"  #ifdef  WIN32  #include #elif  linux  #include #endif  #ifdef WIN32
LxTimer::LxTimer()
{  LARGE_INTEGER sysFreq;  // 计时器频率  flag = QueryPerformanceFrequency( &sysFreq );  if ( flag )  {  dSystemFreq = (double)sysFreq.QuadPart;  }
}  void LxTimer::start()
{  LARGE_INTEGER t;  flag &= QueryPerformanceCounter( &t );  if ( !flag )  return;  dStartTime = (double)t.QuadPart;
}  double LxTimer::stop()
{  LARGE_INTEGER t;  flag &= QueryPerformanceCounter( &t );  if ( !flag )  return -1.0;  dStopTime = (double)t.QuadPart;  return ( dStopTime - dStartTime ) / dSystemFreq;
}  #elif  linux  LxTimer::LxTimer(){}  void LxTimer::start()
{  gettimeofday( &tvStart, NULL );
}  double LxTimer::stop()
{  gettimeofday( &tvStop, NULL );  return (double)(tvStop.tv_sec - tvStart.tv_sec)  + (double)(tvStop.tv_usec - tvStart.tv_usec)/1000000.0;
}  #endif

Windows/Linux高精度计时器(C++)相关推荐

  1. 添加高精度计时器测量处理能力

    文章目录 1 添加高精度计时器测量处理能力 1 添加高精度计时器测量处理能力 这里我们为服务端添加高精度计时器来测量处理能力,这里使用C++11提供的库来实现. CELLTimeStamp.hpp: ...

  2. php hrtime stopwatch,学习PHP中的高精度计时器HRTime扩展

    学习PHP中的高精度计时器HRTime扩展 不知道大家还记得在学校的时候体育测试时老师带的秒表吗?当枪声想起时,我们开始跑步,这时秒表启动,当我们跑过终点后,老师会按下按扭记录我们的成绩,这就是一个典 ...

  3. Qt pro文件下跨平台宏的使用(windows/linux 以及x86 和 arm的区分)

    #Qt pro文件下跨平台宏的使用(windows/linux 以及x86 和 arm的区分) 在pro文件中添加: #仅在linux 系统下, 硬件平台无关的内容 unix{HEADERS += \ ...

  4. vim windows linux文件格式转换

    vim windows linux文件格式转换 set ff?     #显示当前文件格式 set ff=unix     #设置成unix格式 set ff=dos #设置成dos格式 posted ...

  5. 以安装PyTorch为例说明Anaconda在Windows/Linux上的使用

    在Windows10上配置完MXNet 1.3.0后,再配置PyTorch 1.0时,发现两者需要依赖的NumPy版本不一致,之前是通过pip安装NumPy,根据pip的版本不同,会安装不同版本的Nu ...

  6. python使用psutil获取系统(Windows Linux)所有运行进程信息实战:CPU时间、内存使用量、内存占用率、PID、名称、创建时间等;

    python使用psutil获取系统(Windows Linux)所有运行进程信息实战:CPU时间.内存使用量.内存占用率.PID.名称.创建时间等: psutil模块可以跨平台使用,支持Linux/ ...

  7. MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接

    MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接 <一,>MongoDB 简介篇Ruiy; MongoDB是一个高性能,开源,无模式 ...

  8. transfer 全平台Windows linux mac配置文件转换工具

    transfer 支持全平台 Windows linux mac 自动检测转换文件格式 支持多种格式相互转换 HCL ⇄ JSON ⇄ YAML⇄TOML⇄XML⇄plist⇄pickle⇄prope ...

  9. Windows/Linux下引用jar包,并用javac/java编译运行

    Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, ja ...

最新文章

  1. 28款网页CSS设计工具和生成器
  2. 线下沙龙 × 报名 | “大规模数据存储与挖掘”博士生研讨会
  3. 使用SG_IO发送SCSI 指令测试底层驱动的scatter-gather 功能
  4. PHP 高级编程(3/5) - 使用SPL(标准PHP库)实现观察者模式
  5. android应用案例开发大全_vue.js入门及经典应用案例总结(前端开发必看)
  6. 计算机体系结构 -- 第一章3 -- 设计的定量4个原则
  7. 华为摄像机搜索软件_别人的终点华为的起点!用普惠AI守护城市安全
  8. Python---通配符的使用
  9. sublime text3 sql 格式化
  10. 封装mysql数据库_快速掌握 Mysql数据库对文件操作的封装
  11. Linux系统安装教程之一:VM14虚拟机+Ubuntu16安装
  12. Rhino入门教程---渐消面
  13. Informatica使用工作流程及案例1
  14. 深入浅出讲解 Python 元类(Metaclass)的使用
  15. 企业为什么要上云?企业上云的好处和优势有哪些
  16. Eclipse安装( jdk安装以及环境配置教程 )
  17. Spring Data JPA 之 理解 Persistence Context 的核心概念
  18. 预成大器,远离对日外包
  19. java程序员 待遇_现在的java程序员薪资待遇怎么样?
  20. 测试工程师工作日常和职业定位

热门文章

  1. iframe改变不了css,iframe css问题
  2. redis启动 libc.so.6: version `GLIBC_2.14‘ not found
  3. Ubunt php连接oracle,uBuntu PHP Oracle扩展 OCI8安装
  4. access 按日期分列_excel的分列功能居然这么强大,赶紧收藏起来
  5. linux透明加密系统,基于Linux的透明加密系统的设计与实现
  6. h5 img js 点击图片放大_5分钟学会h5生成图片海报!
  7. 8月最新阿里技术栈架构资料
  8. 电视机当计算机屏幕,怎么实现电视机当电脑的显示器和音箱用?
  9. 微信小程序开发者工具升级自动预览功能,福利啊
  10. nvidia驱动程序与windows版本不兼容