对于vector和carray之间经常看到大家很难取舍。
今天因为项目关系,原本用carray做的,然后就改成了vector,顺便做了数据记录。
1,vector和carray 中存放的都是一个结构体,里面包含6个CString数据和1个int数据。
2,carray的排序部分是转换成vector排序然后再写回carray的。
3,测试数据为10万条记录,全部由文件读取。
4,测试结果为3部分,每个部分都分为实际处理时间和画面显示完成时间2块。
5,最终显示数据是放在CListCtrl控件中显示。
6,检索部分,检索结果为其中59966条数据,随机分布在数据源中。
读取 排序 检索
Vector 13.43(1.03) 14.75(4.02) 7.29(0.63)
CArray 14.11(1.15) 15.18(4.38) 7.40(0.69)
单位全部为秒。从结果可以看出,Vector或者CArray实际效果差不多,几乎没有什么差异。而数据读出后写到画面上花掉了太多的时间。10万条数据 13秒,6万条 7秒。
顺便问一下,怎样才能提高这部分的速度呢?
显示部分我是用CListCtrl的InsertItem插入在末尾,然后用SetItemText一个一个数据写的。有没有更加快点的方法呢?谢谢大家指教。
今天因为项目关系,原本用carray做的,然后就改成了vector,顺便做了数据记录。
1,vector和carray 中存放的都是一个结构体,里面包含6个CString数据和1个int数据。
2,carray的排序部分是转换成vector排序然后再写回carray的。
3,测试数据为10万条记录,全部由文件读取。
4,测试结果为3部分,每个部分都分为实际处理时间和画面显示完成时间2块。
5,最终显示数据是放在CListCtrl控件中显示。
6,检索部分,检索结果为其中59966条数据,随机分布在数据源中。
读取 排序 检索
Vector 13.43(1.03) 14.75(4.02) 7.29(0.63)
CArray 14.11(1.15) 15.18(4.38) 7.40(0.69)
单位全部为秒。从结果可以看出,Vector或者CArray实际效果差不多,几乎没有什么差异。而数据读出后写到画面上花掉了太多的时间。10万条数据 13秒,6万条 7秒。
顺便问一下,怎样才能提高这部分的速度呢?
显示部分我是用CListCtrl的InsertItem插入在末尾,然后用SetItemText一个一个数据写的。有没有更加快点的方法呢?谢谢大家指教。
恩,那我也知道。不过现在速度慢在从动态数组中读取数据,然后写到List控件上,时间几乎都花在这里了。
在把记录添加到List里的时候,先对List的界面载个图,然后将该图Paint在原来的List里,并把原先的List隐藏,然后再添加记录,这时弹出一个Model对话框,显示“正在读取数据...”,读取完后,再取消Paint和显示List