一个函数,前后计算时间在约5~6分钟.
函数是对一个全局变量(这是一个自定义类)的多个成员变量(可能有些人叫实例变量)进行操作/*读取/交换/写入*/.
函数中调用多个其它的函数(都是几十亿次的调用,所以哪怕是一点点的优化,可能都可以节省几十秒).问题在于,现在这个总的运行时间我测不准.直接在函数进去的时候,::GetTickCount(),出来的时候再取一次,这个方法对我来说不可用.因为,系统中可能有其它进程占着CPU,导致我的EXE不是100%的用着CPU;或函数等待其它进程(可能有一些I/O操作),等的时间我不能控制。-----------------------------------------------所以我用WINDOWS任务管理器中,看我EXE的"CPU时间",(相同输入,相同输出的情况下)多次运行,从05:08到05:47 不等.所以我无从知道函数是改了快,还是不改快,也不知道怎么改才快.-----------------------------------------------是不是"任务管理器中"中的"CPU时间"不准,还是我程序有BUG?
函数是对一个全局变量(这是一个自定义类)的多个成员变量(可能有些人叫实例变量)进行操作/*读取/交换/写入*/.
函数中调用多个其它的函数(都是几十亿次的调用,所以哪怕是一点点的优化,可能都可以节省几十秒).问题在于,现在这个总的运行时间我测不准.直接在函数进去的时候,::GetTickCount(),出来的时候再取一次,这个方法对我来说不可用.因为,系统中可能有其它进程占着CPU,导致我的EXE不是100%的用着CPU;或函数等待其它进程(可能有一些I/O操作),等的时间我不能控制。-----------------------------------------------所以我用WINDOWS任务管理器中,看我EXE的"CPU时间",(相同输入,相同输出的情况下)多次运行,从05:08到05:47 不等.所以我无从知道函数是改了快,还是不改快,也不知道怎么改才快.-----------------------------------------------是不是"任务管理器中"中的"CPU时间"不准,还是我程序有BUG?
DoSomething();
dwTimeElapsed = GetTickCount() – dwOldTime;