Re[5]: кто как засекает время(C++)
От: CreatorCray  
Дата: 13.11.05 15:18
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>>>GetTime уж очень не точна. Лучше

СМ>>>QueryPerformanceCounter/QueryPerformanceFrequency
CC>>Которая на многопроцессорных и HT системах внутри себя все равно пользуется rdtsc
СМ>мб, но это на С а то на ассемблере

Пфф. На С надо? Элементарно:
#pragma warning (push, disable: 1011) // это чтоб компилер ворнинг не кидал на то, что функция не возвращает значение явно
__forceinline __int64 __rdtsc ()
{
    asm rdtsc;
}
#pragma warning (pop)


CC>>а на синглпроц — пользуется счетчиком, который имеет довольно низкую частоту (у меня например QueryPerformanceFrequency = 3579545 при частоте проца в 2Гц)

СМ>это не всегда так. зависит, например от HT
При наличии поддежки НТ QueryPerformanceCounter ВСЕГДА будет использовать rdtsc а не один из счетчиков rdpmc.
Касательно того, что именно считают два 40битных Perfomance counter-а которые можно получить через rdpmc, я ничего особо внятного не нашел в свое время. Разве что только фразу: processor specific counters.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.