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

4 篇文章 0 订阅
2 篇文章 0 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值