1. 程式人生 > >使用精確定時測試MFC中List Control寫入速度

使用精確定時測試MFC中List Control寫入速度

需要在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可以大幅提高寫入效率。