zoukankan      html  css  js  c++  java
  • C++ write and read file via fstream and time cost

    #include <iostream>
    #include <uuid/uuid.h>
    #include <ctime>
    #include <fstream>
    #include <sstream>
    #include <chrono>
    #include <string.h>
    
    using namespace std;
    
    void retrieveUuid1(char *uuidValue);
    char *getTimeNow();
    void writeFile3();
    void readFile4();
    
    int main()
    {
        writeFile3();
        return 0;
    }
    
    void readFile4()
    {
        fstream rFile("log.txt",ios::in);
        if(!rFile.is_open())
        {
            cout<<"Open log.txt failed!"<<endl;
        }
    
        string line;
        unsigned num=0;
        while(getline(rFile,line))
        {
            ++num;
            if(num%1000000==0)
            {
                cout<<"Num is "<<num<<",value is "<<line<<",now is "<<getTimeNow()<<endl;
            }
        }
        rFile.close();
        cout<<"Now finished in openLog4() and now is "<<getTimeNow()<<endl;
    }
    
    void writeFile3()
    {
        fstream wFile("log.txt",ios::app|ios::out);
        if(!wFile.is_open())
        {
            cout<<"Create or open log.txt failed!"<<endl;
        }
    
        unsigned num=0;
        stringstream ss;
        char *uuidValue=(char*)malloc(40);
        unsigned int loops=100;
        unsigned int loopTimes=1000000;
        string str; 
        chrono::time_point<chrono::system_clock> startTime;
        chrono::time_point<chrono::system_clock> endTime;
        for(int i=0;i<loops;i++)
        {
            startTime=chrono::system_clock::now();
            for(int j=0;j<loopTimes;j++)
            {
                ++num;
                retrieveUuid1(uuidValue);
                str=to_string(num); 
                str.append(",");
                str.append(uuidValue);  
                ss<<str<<endl;
            }
            wFile<<ss.str()<<endl;
            ss=stringstream();
            endTime=chrono::system_clock::now();        
            cout<<"Num is "<<num<<",now is "<<getTimeNow()<<endl;
            cout<<"Time cost "
                <<chrono::duration_cast<chrono::seconds>(endTime-startTime).count()<<" seconds,"
                <<chrono::duration_cast<chrono::milliseconds>(endTime-startTime).count()<<" milliseconds,"
                <<chrono::duration_cast<chrono::microseconds>(endTime-startTime).count()<<" microseconds,"
                <<chrono::duration_cast<chrono::nanoseconds>(endTime-startTime).count()<<" nanoseconds"<<endl<<endl;
        }
    
        free(uuidValue);
        wFile.close();
        cout<<"Finished in log3() and now is "<<getTimeNow()<<endl;    
    }
    
    void retrieveUuid1(char *uuidValue)
    {
        uuid_t newUUID;
        uuid_generate(newUUID);
        uuid_unparse(newUUID,uuidValue);
    }
    
    char *getTimeNow()
    {
        char *dtValue=(char*)malloc(20);
        time_t rawTime=time(NULL);
        struct tm tmInfo=*localtime(&rawTime);
        strftime(dtValue,20,"%Y%m%d%H%M%S",&tmInfo);
        return dtValue;
    }

    Compile

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

    Run 

  • 相关阅读:
    利用JAVACC实现简单的四则运算
    pygeoip 以及dpkt模块 进行数据包分析与定位
    Pexpect 模块登录ssh以及pxssh模块暴力破解ssh密码
    python socket模块,nmap模块实现端口扫描器以及编码问题
    python zipfile模块和optparse模块暴力破解zip文件
    programming language part b 第一周作业
    python 实现简单爬虫
    Python 图像转字符画
    最大堆的ADT实现
    programming language part a 第五周总结
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15710211.html
Copyright © 2011-2022 走看看