首页 > 代码库 > 请教 - 关于使用文本文件记录数据慢的问题

请教 - 关于使用文本文件记录数据慢的问题

软件使用文本文件来记录数据,前些天以客户反映,数据写入时间太长,能不能设置不记录数据,因为之前测试的时候,测试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);

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

 

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

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

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

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

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

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

 

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

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

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

重要的事要说三遍。

 

请教 - 关于使用文本文件记录数据慢的问题