• Test Linux/Windows 11 performance when run unit32.max() times increment time cost


    Ubuntu

    #include <chrono>
    #include <iostream>
    #include <limits.h>
    #include <uuid/uuid.h>
    using namespace std;
    
    void testTime(int x);
    
    int main(int args, char **argv)
    {
        int x = atoi(argv[1]);
        testTime(x); 
    }
    
    void testTime(int x)
    { 
        cout<<numeric_limits<uint32_t>().max()<<endl;
        chrono::time_point<chrono::steady_clock> startTime;
        chrono::time_point<chrono::steady_clock> endTime;
        for(int i=0;i<x;i++)
        {
            startTime = chrono::steady_clock::now();
            for(uint32_t j=0;j<numeric_limits<uint32_t>().max();j++)
            {
    
            }
            endTime = chrono::steady_clock::now();
            cout << i<< "," << chrono::duration_cast<chrono::milliseconds>(endTime - startTime).count() << " milliseconds,"<<chrono::duration_cast<chrono::nanoseconds>(endTime-startTime).count()<<" nanos!" << endl;
        }
    }

    Compile

    g++ -std=c++2a *.cpp -o h1 -luuid

    Run

    ./h1 10

    Snapshot

     As the above snapshot illustrated when run 4294967296 times increment,in Ubuntu 20.04,c++ will cost approximately 2.2-2.3 seconds.

    Win11/Visual Studio 2022/VC++

    #include <chrono>
    #include <limits.h>
    #include <iostream>
    #include <Windows.h>
    
    using namespace std;
    
    void testTime(); 
    
    int main()
    {
        testTime();
        cin.get();
    }
    
    void testTime()
    {
        chrono::time_point<chrono::steady_clock> startTime;
        chrono::time_point<chrono::steady_clock> endTime;
        for (int i = 0;i < 10;i++)
        {
            startTime = chrono::steady_clock::now();
            UINT j;
            for (j = 0;j < UINT_MAX;j++)
            {
    
            }
            endTime = chrono::steady_clock::now();
            cout << i << "," << j << "," << chrono::duration_cast<chrono::milliseconds>(endTime - startTime).count() << " milliseconds," <<
                chrono::duration_cast<chrono::nanoseconds>(endTime - startTime).count() << " nanos!" << endl;
        }
    } 

    Run release/x64

    As the above snapshot illustrates that when increment from 0 to 4294967295 only cost 100 nanoseconds.

  • 相关阅读:
    linux一些配置
    tomcat启动后,页面无法访问
    利用jmeter实现多IP压测
    java操作数据库
    excle中表头分割单元格
    常用的最大流算法 Dinic 和 最小费用最大流SPFA写法
    [kuangbin]带你飞之'网络流'专题
    (留坑以后再看)一般图'最大匹配' 带花树 算法
    二分图'多重匹配'
    二分图'最大匹配' HK 算法
  • 原文地址:https://www.cnblogs.com/Fred1987/p/16519272.html
Copyright © 2020-2023  润新知