Просмотр полной версии : Вычисление времени работы функции (С++)
Требуется вычислить время затраченное на работу программы или на отдельный её кусок. В инете нашёл только функцию GetLocalTime, но даже не знаю как один её рещультат вычесть из другого. Подскажите пожалуйста как реализовать такой замер времени?
Во-первых какой у вас процессор. Если амд, то можете заюзать готовый профилировщик
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 нехорошо юзоть, когда время выполнения программы меряете, совсем нехорошо. Результаты наверняка получите далекие от действительности.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot