Здравствуйте, Сергей Мухин, Вы писали:
СМ>>>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, значит пора закрыть эту страницу.
Всем пока