您的位置:首页 > 其它

使用精确定时测试MFC中List Control写入速度

2016-10-05 23:28 573 查看
需要在List Control中写入大量数据,为了测试写入效率编写了如下小程序测试写入时间

//List Control写入时间测试
CString str = _T("1234567890");
LONGLONG t1,t2;
LONGLONG persecond;

//查询系统一秒钟的频率
QueryPerformanceFrequency((LARGE_INTEGER *)&persecond);
QueryPerformanceCounter((LARGE_INTEGER *)&t1);
m_list.SetRedraw(FALSE);//对比隐去前后效果
for (i = 0; i < 10000; i++)
{
m_list.InsertItem(i, str);
}
m_list.SetRedraw(TRUE);//对比隐去前后效果
QueryPerformanceCounter((LARGE_INTEGER *)&t2);
double time = (double)(t2 - t1)/persecond;
str.Format(_T("%.10f"), time);
m_list.InsertItem(0, str);
return;

一次写入10000行数据,写入完成后将用时时间写入第一行。
不加入m_list.SetRedraw()函数,用时大概在1.5s左右;

加入m_list.SetRedraw()函数,用时大概在0.13s左右。

可见在大量更新List Control的情况下,加入SetRedraw可以大幅提高写入效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息