当前位置: 首页 > 网络应用技术

C ++】C ++算法计时器

时间:2023-03-06 01:59:17 网络应用技术

  有时,为了检测和比较算法效率和复杂性,需要一个计时器,并且该计时器通常需要准确地以毫秒MS,微秒μs,甚至是纳秒NS。较少使用的库或API不会被放置。

  在标题文件时间。称为wal-clock,constant clocks_per_sec,它用于指示一秒钟内将可用多少时钟正时单元,这是准确的毫秒。使用方法如下:如下:如下:

  本质代码:

  示例是检测用于在不同输入中逐一插入(不直接运行)的时间:

  getTickCount检索(检索)操作系统的毫秒数始于操作系统,其返回值是dword。

  随着毫秒的时间,这次是系统开始时通过的时间。在使用TimeGetTime之前,您应该包括标题文件#include 或#include 并将winmm.lib添加到project-> settings-> object/library模块。

  备注:命令行:#pragma评论(lib,“ xxx.lib”)pre -compile and Process指令,让VC添加winmm.lib到该项目中进行编译。

  此功能的时间准确性为五毫秒或更大,具体取决于机器的性能。您可以使用TimeBeginPeriod和TimeEndPeriod函数来提高TimeGet Time函数的准确性。如果您使用它,请连续调用TimeTime函数,并且差异差异,并且差异在一系列返回中,由TimeBeginperiod和Timendperiod确定

  时空结构

  QueryPerformanceFrequency()函数返回高精确性能计数器的值。它可能需要微妙的时机,但是QueryPerforFormanceCounter()精确准确时机的准确和精确时序的最小单位与系统有关。挤压声音的频率。QueryPerformanceFequencyFrequency()提供此频率并返回快照的数量每秒。

  易于调用的封装代码:

  首先获取CPU频率。

  在Intel Pentium上方的CPU中,有一个称为“时间戳”的组件。它记录了自CPU以自CPU打电话以来已通过的时钟周期数。由于当前CPU的主要频率很高,因此该组件可以达到纳米 - 第二个时序准确性。该方法由上述方法无与伦比。在五角星上方的CPU中,提供了机器指令RDTSC(读取时间戳记计数器)来读取此时间戳的数量并将其保存在EDX中:EAX寄存器中间。在Win32平台下的C ++语言保存函数中,我们可以将此指令视为正常函数调用,因为RDTSC不受C ++嵌入式编译设备的直接支持,Sowe需要使用_emit pseudo -Instructions嵌入了指令0x0F和0x31的机器代码。

  以下是获得CPU准确性的代码

  功能原型:

  std :: chrono :: time_point代表特定时间

  第一个模板参数时钟用于指定要使用的时钟。标准库中有三个时钟,其中:

  时间邮票有一个时间戳,是原始时间点。Chrono库在1970年1月1日使用Unix的时间戳1月1日00:00。

  有必要不时准备,没有人使用它。

  在标题文件时间。返回结果是time_t类型。使用方法如下:

  原始:https://juejin.cn/post/7100227973147525134