使用精確定時測試MFC中List Control寫入速度
阿新 • • 發佈:2019-01-08
需要在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可以大幅提高寫入效率。