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

Posted 没烟抽的寂寞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教 - 关于使用文本文件记录数据慢的问题相关的知识,希望对你有一定的参考价值。

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

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

 

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

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

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

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

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

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

 

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

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

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

重要的事要说三遍。

 

以上是关于请教 - 关于使用文本文件记录数据慢的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于mysql表中有大文本limit慢的优化

请教mysql innodb下delete操作巨慢的情况

为什么查询数据不多,却慢的离谱,在我请教了隔壁新来的阿里大佬后

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

请教ABAP性能优化-关于MSEG

53分(我的所有)请教:关于ClientDataSet新增记录问题(请富翁们关注!谢谢)