PDA

Просмотр полной версии : Вычисление времени работы функции (С++)


Kuzya
28.02.2009, 09:50
Требуется вычислить время затраченное на работу программы или на отдельный её кусок. В инете нашёл только функцию GetLocalTime, но даже не знаю как один её рещультат вычесть из другого. Подскажите пожалуйста как реализовать такой замер времени?

0x0c0de
28.02.2009, 10:16
Во-первых какой у вас процессор. Если амд, то можете заюзать готовый профилировщик

http://developer.amd.com/cpu/CodeAnalyst/codeanalystwindows/Pages/default.aspx

AMD CodeAnalyst™ Performance Analyzer for Windows®

Для интелов тоже есть, зовется Intel® VTune™ Performance Analyzer

http://www.intel.com/cd/software/products/asmo-na/eng/239144.htm

Как ручной способ могу предложить ассемблерные вставки с rdtsc


_asm
{

xor eax,eax

cpuid

rdtsc

mov [count],eax

//код, время выполнения которого меряем

xor eax,eax

cpuid

rdtsc

sub eax,[count]

// в eax - сколько намеряли

}



однако, это рекомендованный код для интелов. GetLocalTime нехорошо юзоть, когда время выполнения программы меряете, совсем нехорошо. Результаты наверняка получите далекие от действительности.