время работы некоторого участка программы
запустить под профайлером. Грубо можно прикинуть с помощью разных счетчиков, выдающих точное время (или число тактов). Например, до милисекунд можно функцией clock воспользоваться
Под Win2k есть HiPerformanceCounter - точность порядка микросекунд.
Под x86 есть
asm { rdtsc; }вообще такты меряет. Очень интересно, видно как после первых проходов цикла данные оседают в кеше, или как кеш инструкций заполняется.
Для этой цели, наверное, подходит, но вообще в качестве высокоточного таймера рекомендуется использовать всё-таки виндовый хай-перформанс каунтер, или медиа-таймер. Потому что на мобильных процессорах тактовая частота может смешно плавать.
на мобильных процессорахПоверишь ли, на Opteron-ах тоже, он когда греется - сбрасывает. Но если о таком задумываться, то вообще никакому счетчику нельзя верить, потому что квантовые эффекты начинаются. Ну то есть нельзя наблюдать ход процесса не изменяя этот самый ход.
если за время работы моего кода , процессор отвлекался ) как точно измерить ?
Только не забывай часто вызывать Sleep(1) - иначе клавиатура работать не будет и всё такое.
Оставить комментарий
perko
как правильнее всего подсчитать процессорное время работы некоторого участкакода , скажем в с++ ?