Quiero calcular el rendimiento de una función en precisión de micro segundos en la plataforma de Windows.Cómo calcular el tiempo de una operación en microsegundos de precisión
Ahora Windows tiene una granulidad de milisegundos, así que ¿cómo puedo lograrlo?
Intenté seguir la muestra, pero no obteniendo los resultados correctos.
LARGE_INTEGER ticksPerSecond = {0};
LARGE_INTEGER tick_1 = {0};
LARGE_INTEGER tick_2 = {0};
double uSec = 1000000;
// Get the frequency
QueryPerformanceFrequency(&ticksPerSecond);
//Calculate per uSec freq
double uFreq = ticksPerSecond.QuadPart/uSec;
// Get counter b4 start of op
QueryPerformanceCounter(&tick_1);
// The ope itself
Sleep(10);
// Get counter after opfinished
QueryPerformanceCounter(&tick_2);
// And now the op time in uSec
double diff = (tick_2.QuadPart/uFreq) - (tick_1.QuadPart/uFreq);
¿Qué resultados * haces *? Tenga en cuenta que 'Sleep' no garantiza que duerma exactamente el tiempo especificado; usar, por ejemplo, 'Sleep (1000)' para dormir por un segundo, para que pueda verificar usted mismo si está haciendo más o menos lo correcto. – Thomas
Cuenta silenciosamente para ti REALMENTE rápido. –