我写了个双重循环,结果效率极低,半天才执行完毕,我刚开始我以为是双重循环的问题, 然后我把双重循环改成单循环,问题依旧,我就纳闷了,我循环个500W次效率也没这么低挖,何况这次10几W次,然后就一条语句一条语句注释掉,看到底是哪条语句出了问题,工夫不负有心人啊,终于被我找到了,而且这句话是我最没想到会出问题的一句话,那就是TRACE
我做了这样一个试验,写了一段代码,插入到对话框的初始化中
for(int i = 0; i < 100000; i++)
...{
int sum = 0;
sum += i;
}
MessageBox(_T("完成"));
...{
int sum = 0;
sum += i;
}
MessageBox(_T("完成"));
基本没有延时就跳出来了,虽然进行了加法运算,再看下面这段代码,延时就大了
for(int i = 0; i < 100000; i++)
...{
TRACE("i = %d ", i);
}
MessageBox(_T("完成"));
...{
TRACE("i = %d ", i);
}
MessageBox(_T("完成"));
原来显示需要更多的时间