Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Вычисление времени работы функции (С++) (https://forum.antichat.xyz/showthread.php?t=108439)

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 нехорошо юзоть, когда время выполнения программы меряете, совсем нехорошо. Результаты наверняка получите далекие от действительности.


Время: 10:45