首页 > 其他分享 >save data to csv

save data to csv

时间:2024-10-12 22:01:04浏览次数:6  
标签:std comment csv chrono clock include ElapseMillsec save data

 

// elapse.h

#ifndef  __ELAPSE_MILLSEC_H__
#define  __ELAPSE_MILLSEC_H__

//#include <iostream>  
#include <chrono>  
#include <iomanip> // 用于设置输出流的格式  
using namespace std;
//计算耗时
class ElapseMillsec{
public:

    ElapseMillsec(std::string comment);

    ElapseMillsec();
    ~ElapseMillsec();

private:
    std::string m_comment="";
    std::chrono::high_resolution_clock::time_point m_Start;
    std::chrono::high_resolution_clock::time_point m_End;
};

#endif

 

 

// elapse.cpp

#include "elapse.h"

ElapseMillsec::ElapseMillsec(std::string comment):m_comment(comment){
  m_Start = std::chrono::high_resolution_clock::now(); // 获取开始时间  
}

ElapseMillsec::ElapseMillsec(){
  m_Start = std::chrono::high_resolution_clock::now(); // 获取开始时间  
}

ElapseMillsec::~ElapseMillsec(){
    m_End = std::chrono::high_resolution_clock::now(); // 获取结束时间  
    // 计算持续时间  
    std::chrono::duration<double, std::milli> elapsed = m_End - m_Start;  
    // 输出执行时间,以毫秒为单位  
    printf("%s cost %f milliseconds.\r\n", m_comment.c_str(), elapsed.count());
}

 

 

 

// save_csv.cpp

#include "elapse.h"
#include <iostream>

#include <vector>
#include <fstream>


typedef struct{
    int iID = 0;
    float fMaxTemp = 0.0f;
    float fMinTemp = 0.0f;
    float fAvgTemp = 0.0f;
    std::string strName="";

}tempDef;

void test(){
    const int iMaxSize = 1000000;
    std::vector<tempDef> vecList;

    // add data to vector
    {
        ElapseMillsec  elap_vecpush("elap_vecpush");  // 211ms
        vecList.reserve(iMaxSize*1.2);
        for(int i=0;i<iMaxSize;i++){
            tempDef td;
            td.iID = i;
            td.fMaxTemp = i+0.1f;
            td.fMinTemp = i+0.1f;
            td.fAvgTemp = i+0.1f;
            td.strName = std::string("test_") + std::to_string(i);
            vecList.push_back(td);
        }
    }

    // save data to csv
    {
        ElapseMillsec  elap_save("elap_save");

        // 如果文件不存在则创建;如果存在则覆盖
        std::ofstream ofs("test.csv", std::ios::out); // 2546ms --> 100w data -->也和设备性能有关系
        ofs << "id,name,max,min,avg\n";
        for(auto& td : vecList){
            ofs << td.iID << "," << td.strName << "," << td.fMaxTemp << "," << td.fMinTemp << "," << td.fAvgTemp << "\n";
        }
        ofs.close();
        std::cout << "save done" << std::endl;
    }

}
int main(){
    test();
    return 0;
}

 

目前,在我电脑的虚拟机上面的运行情况如下:

100w条数据

数据 加入到vector,耗时:211ms

数据写入到 cvs 文件,耗时:2546ms

100w条数据,文件大小:40044470 byte(38.1Mb)

 

标签:std,comment,csv,chrono,clock,include,ElapseMillsec,save,data
From: https://www.cnblogs.com/music-liang/p/18461573

相关文章

  • 高级数据类型 Advanced Data
    高级数据类型AdvancedDataAdvancedData数组Arrays字符序列CharactersSequences指针Points动态内存分配数据结构DataStructures自定义数据类型Arraytype为任何objecttype//typename[elements];inta[5];intb[5]={16,2,77,40,1201};intc[]=......
  • C# ListToDataTable
    publicstaticDataTableListToDataTable<T>(List<T>list){DataTabledt=newDataTable();//获取实体类型Typetype=typeof(T);//添加列PropertyInfo[]properties=type.G......
  • 软件构造,生成算式采用CSV、XML、JSON三种形式进行存储并读取。
    编写代码完成将生成的算式及习题长期保存下来,采用CSV、XML、JSON三种形式进行存储并读取。提交相关代码及运行截图。importrandomimportcsvimportjsonimportxml.etree.ElementTreeasETfromxml.domimportminidom#生成随机算式数据defgenerate_exercises(count......
  • MySql.Data.dll官网下载
    原文链接:https://blog.csdn.net/weixin_30668887/article/details/96468519Mysql.Data.dll官网下载在项目开发中链接MySQL数据库经常要用到Mysql.Data.dll,网上虽然有很多,但是还是比较信赖官网的今天就从官网下载一次记录一下过程1.下载地址官网地址:https://www.mysql.com/2.......
  • 利用pytorch的datasets在本地读取MNIST数据集进行分类
    MNIST数据集下载地址:tensorflow-tutorial-samples/mnist/data_setatmaster·geektutu/tensorflow-tutorial-samples·GitHub数据集存放和dataset的参数设置:完整的MNIST分类代码:importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorchvisionimpor......
  • apisix~自定义文件上传代理插件~支持form-data文件和kv参数
    参考文献https://stackoverflow.com/questions/24535189/composing-multipart-form-data-with-a-different-content-type-on-each-parts-with-jhttps://www.reddit.com/r/lua/comments/yaizxv/lua_post_multipartformdata_and_a_file_via/?rdt=60519https://github.com/rstudi......
  • Communication-Efficient Learning of Deep Networks from Decentralized Data论文阅
    联邦学习开山之作Communication-EfficientLearningofDeepNetworksfromDecentralizedDataabstractIntroductionTheFederatedAveragingAlgorithmExperimentalResultsConclusionsandFutureWorkCommunication-EfficientLearningofDeepNetworksfromDec......
  • 07-数据表创建方式(Database First、Model First、Code First)
    常见的创建数据表结构的三种方式:DatabaseFirstModelFirst  DBA经常使用这个方式CodeFirst   推荐程序员使用,此方法专注于业务模型的设计,而不是专注数据库设计 Flask-SQLAlchemy介绍SQLALchemy实际上是对数据库的抽象,让开发者不用直接和SQL语句打交道,而是......
  • datatables使用ajax获取数据
    前端://初始化datatablevartable3=$('.jiaoshi_lst').DataTable({"processing":true,"serverSide":true,"paging":true,"ordering":false,"searching":false......
  • sqlserver将database从C盘迁移到E盘
    --备份backupdatabasehyyytodisk='E:\MicrosoftSQLServer\BackUp\hyyy.bak';--查询路径selectnameas[databaseName],physical_nameas[filePath],type_descas[filetype],state_descfromsys.master_filesWHEREdatabase_id=DB_ID('hyyy'......