| Цитата(GremlinProg @ 19.11.2008, 20:46) | Цитата(PPS05 @ 27.2.2008, 00:16 ) | | Если поделить разность значений счетчиков на частоту, получишь значение временного интервала в микросекундах |
| Цитата(QueryPerformanceFrequency) | The QueryPerformanceFrequency function retrieves the frequency of the high-resolution performance counter, if one exists. The frequency cannot change while the system is running.
Syntax BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
Parameters
lpFrequency [out] Pointer to a variable that receives the current performance-counter frequency, in counts per second. If the installed hardware does not support a high-resolution performance counter, this parameter can be zero. Return Value
If the installed hardware supports a high-resolution performance counter, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError. For example, if the installed hardware does not support a high-resolution performance counter, the function fails.
|
конечно, таким способом можно получить время в секундах, хотя, выбрав после этого нужный делитель, можно и микросекунды извлечь.
частота дискретизации счетчика зависит от мощей и уровня загруженности проца, вот он и называется performance-counter
основной минус в том, что сам счетчик нестабилен, частота плавает, отсюда небольшие (а порой и большие) погрешности
нужно еще учесть, что на разных процах результат будет скорее разный, чем одинаковый, поэтому во время замеров рекомендуется закреплять процесс или поток на каком-нибудь одном (если, конечно, процов несколько). |
Ты оказался прав. - Даже не трогая ядра, на разных компьютерах разные результаты. (Конфигурация примерно одинаковая) - Так что данный вариант не годится =( |