zoukankan      html  css  js  c++  java
  • 请教

    软件使用文本文件来记录数据,前些天以客户反映,数据写入时间太长,能不能设置不记录数据,因为之前测试的时候,测试400个点的数据,写入的时间也就在1秒钟的样子,而客户实际写入是需要到一分半钟。

    起初以为是不是系统的问题,因为给客户配置的是笔记本电脑,使用的win10家庭版的系统,而之前一直使用的是win7的系统,我想那就给客户改下程序,不记录数据,暂时使用。

    这两天空闲下来,进行测试,分别测试了win7和win10的系统,起初没有发现异常,写入速度都挺快的,但是经过多次写入的话,写入的数据就开始变慢了,不管是win7还是win10,都是一样的结果,排除了系统的原因。

    经过测试,发现是因为数据写的越来越多,导致的速度越来越慢。

    测试电脑系统属性

    测试写入时间记录

    每次写入的数据量大概是45K。

    这样下来,数据写的越来越多,写入的时间越来越长,但是每次写入的数据量是一定的,那这种原因就是文件多来越大,那么写入的速度就越来越慢了。

    记录数据的方式是使用window的写配置文件的API函数,每次将数据格式化后,写入文件中

        //L
            strTemp.Format("%.2f",DataArray.GetAt(i).L);
            WritePrivateProfileString(strJiedian,"L",strTemp,strLogFileName);
    
            //x
            strTemp.Format("%.4f",DataArray.GetAt(i).x);
            WritePrivateProfileString(strJiedian,"xse",strTemp,strLogFileName);
    
            //y
            strTemp.Format("%.4f",DataArray.GetAt(i).y);
            WritePrivateProfileString(strJiedian,"yse",strTemp,strLogFileName);

    到此可以判断,随着记录文件的增大,写入的速度变慢了。

    那么要想就解决这个问题,该怎么办呢。

    目前能想到的办法是使用数据库来记录数据,但是不知道要使用哪种数据库来记录。

    哪位前辈能推荐一下一个轻量级的数据库,来就解决这个数据记录的问题。

    或者说有其它办法来解决这个数据存储慢的问题。

    我知道这种格式化输出的文本文件是比较耗时的,如果直接使用二进制文件记录的话,速度会很快。

    但是这些记录需要一定的格式来记录,后续需要进行一些删除和选择输出的功能,所以使用二进制文件不太方便记录和删除。

    哪位前辈能推荐一个合适的解决方案,在此多谢了。

    哪位前辈能推荐一个合适的解决方案,在此多谢了。

    哪位前辈能推荐一个合适的解决方案,在此多谢了。

    重要的事要说三遍。

  • 相关阅读:
    DBSCAN算法及sklearn实现
    K-MEANS算法及sklearn实现
    Linux删除有规则文件夹,比如(50-100)
    11.tensorboard网络结构
    10.优化器
    9.正则化
    8.Dropout
    Linux中awk后面的RS, ORS, FS, OFS 含义
    hadoop 客户的的使用
    shell中的>&1和 >&2是什么意思?
  • 原文地址:https://www.cnblogs.com/fredliu/p/6692986.html
Copyright © 2011-2022 走看看