• Linux C++ generate via uuid_generate_time,uuid_generate_time_safe,uuid_generate,uuid_generate_random


    #include <chrono>
    #include <iostream>
    #include <uuid/uuid.h> 
    using namespace std;
    
    void uuid_generatenewUUID(int x);
    void uuid_generate_randomnewUUID(int x);
    void uuid_generate_timenewUUID(int x);
    void uuid_generate_timeSafenewUUID(int x);
    void testUuid_generate_timeSafe(int x);
    
    int main(int args,char**argv)
    {
        int x=atoi(argv[1]);
        uuid_generatenewUUID(x);
        uuid_generate_randomnewUUID(x);
        uuid_generate_timenewUUID(x);
        uuid_generate_timeSafenewUUID(x);
        // testUuid_generate_timeSafe(x);
        
    }
    
    void testUuid_generate_timeSafe(int x)
    {
        char* uuidValue=(char*)malloc(40);
        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();
            uuid_t newUUID;
            uuid_generate_time(newUUID);
            uuid_unparse(newUUID,uuidValue);
            endTime=chrono::steady_clock::now();
            cout<<i<<","<<uuidValue<<","<<chrono::duration_cast<chrono::nanoseconds>(endTime-startTime).count()<<" nanos!"<<endl;
        }
    }
    
    void uuid_generate_timeSafenewUUID(int x)
    {
        cout<<"In uuid_generate_timeSafenewUUID!"<<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(int j=0;j<1000000;j++)
            {
                uuid_t newUUID; 
                uuid_generate_time_safe(newUUID);
            }
            endTime=chrono::steady_clock::now();
            cout<<i<<","<<chrono::duration_cast<chrono::milliseconds>(endTime-startTime).count()<<" milliseconds!"<<endl;
        }
    }
    
    void uuid_generate_timenewUUID(int x)
    {
        cout<<"In uuid_generate_timenewUUID!"<<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(int j=0;j<1000000;j++)
            {
                uuid_t newUUID; 
                uuid_generate_time(newUUID);
            }
            endTime=chrono::steady_clock::now();
            cout<<i<<","<<chrono::duration_cast<chrono::milliseconds>(endTime-startTime).count()<<" milliseconds!"<<endl;
        }
    }
    
    void uuid_generatenewUUID(int x)
    {
        cout<<"In uuid_generatenewUUID"<<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(int j=0;j<1000000;j++)
            {
                uuid_t newUUID;
                uuid_generate(newUUID); 
            }
            endTime=chrono::steady_clock::now();
            cout<<i<<","<<chrono::duration_cast<chrono::milliseconds>(endTime-startTime).count()<<" milliseconds!"<<endl;
        }
    }
    
    void uuid_generate_randomnewUUID(int x)
    {
        cout<<"In uuid_generate_randomnewUUID"<<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(int j=0;j<1000000;j++)
            {
                uuid_t newUUID; 
                uuid_generate_random(newUUID);
            }
            endTime=chrono::steady_clock::now();
            cout<<i<<","<<chrono::duration_cast<chrono::milliseconds>(endTime-startTime).count()<<" milliseconds!"<<endl;
        }
    }

    Compile

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

    Run

    ./h1 10

    Snapshot

     Referenced  https://www.man7.org/linux/man-pages/man3/uuid_generate.3.html#:~:text=The%20uuid_generate%20%28%29%20function%20creates%20a%20new%20universally,from%20getrandom%20%282%29%2C%20%2Fdev%2Furandom%2C%20or%20%2Fdev%2Frandom%20if%20available.

  • 相关阅读:
    Linux基本命令(一)
    Linux基本命令(一)
    前端js实现打印excel表格
    前端js实现打印excel表格
    前端js实现打印excel表格
    前端js实现打印(导出)excel表格
    前端js实现打印(导出)excel表格
    混合开发中拍照和打电话功能的代码
    混合开发中拍照和打电话功能的代码
    操作系统的发展史(科普章节)
  • 原文地址:https://www.cnblogs.com/Fred1987/p/16519175.html
Copyright © 2020-2023  润新知