首页 > 代码库 > 请教 - 关于使用文本文件记录数据慢的问题
请教 - 关于使用文本文件记录数据慢的问题
软件使用文本文件来记录数据,前些天以客户反映,数据写入时间太长,能不能设置不记录数据,因为之前测试的时候,测试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);
到此可以判断,随着记录文件的增大,写入的速度变慢了。
那么要想就解决这个问题,该怎么办呢。
目前能想到的办法是使用数据库来记录数据,但是不知道要使用哪种数据库来记录。
哪位前辈能推荐一下一个轻量级的数据库,来就解决这个数据记录的问题。
或者说有其它办法来解决这个数据存储慢的问题。
我知道这种格式化输出的文本文件是比较耗时的,如果直接使用二进制文件记录的话,速度会很快。
但是这些记录需要一定的格式来记录,后续需要进行一些删除和选择输出的功能,所以使用二进制文件不太方便记录和删除。
哪位前辈能推荐一个合适的解决方案,在此多谢了。
哪位前辈能推荐一个合适的解决方案,在此多谢了。
哪位前辈能推荐一个合适的解决方案,在此多谢了。
重要的事要说三遍。
请教 - 关于使用文本文件记录数据慢的问题