ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++微秒级计时+对拍

2019-06-21 20:52:04  阅读:353  来源: 互联网

标签:std %. clock auto system c++ 计时 微秒 txt


调用了c++11加入的chrono库和命名空间

大部分内容来自这篇blog

注意:如果你直接这么写你会发现用纳秒级的代码实际上的精度是0.1微秒

这是因为在Windows下system_clock只有这个精度

所以如果想做到真正的1ns需要用high_resolution_clock

当然你用linux的话请无视上面那几句话

其实还可以把nanoseconds换成更小的,不过操作系统精度不够,并没有什么用

这个板子好难背啊

#include<cstdio>
#include<chrono>
#include<cstdlib>//用万能头也行
using namespace std;
using namespace chrono;
int main()
{
    for(register int i=1;;++i)
    {
        system("data.exe > in.txt");
        auto s=system_clock::now();
        system("std.exe < in.txt  > stdout.txt");
        auto t=system_clock::now();
        system("test.exe < in.txt > testout.txt");
        auto t2=system_clock::now();
        auto duration1=duration_cast<microseconds>(t-s);
        auto duration2=duration_cast<microseconds>(t2-t);
        double time1=(double)(duration1.count())/1000;
        double time2=(double)(duration2.count())/1000;
        if(system("fc /W stdout.txt testout.txt > nul"))
        {
            printf("point #%d\nWA time used: std %.3fms test %.3lfms\n",i,time1,time2);
            break;
        }
        else printf("point #%d\nAC time used: std %.3fms test %.3lfms\n",i,time1,time2);
    }
    system("pause>nul");
    return 0;
}

标签:std,%.,clock,auto,system,c++,计时,微秒,txt
来源: https://www.cnblogs.com/123789456ye/p/11066736.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有