Cómo obtener la hora actual (con una precisión de milisegundos) en la programación VC
1. Un método de sincronización de alta precisión que utiliza directamente la marca de tiempo interna de la CPU Pentium para la sincronización.
2. En Intel Pentium y CPU de nivel superior, hay un componente llamado "Time Stamp", que registra los datos de la CPU en el formato de un entero sin signo de 64 bits. que han transcurrido desde el encendido. Dado que la velocidad de reloj actual de la CPU es muy alta, este componente puede lograr una precisión de sincronización de nivel de nanosegundos.
3. Debido a que RDTSC no es compatible directamente con el ensamblador integrado de C, se debe utilizar la pseudoinstrucción _emit para incrustar directamente el código de máquina de la instrucción en formato 0X0F, 0X31, de la siguiente manera:
en línea sin firmar __int64 GetCycleCount()
{
__asm _emit 0x0F
__asm _emit 0x31
}
4 Cuando se necesita un contador, puede llamar a la función GetCycleCount dos veces como si usara la API Win32 normal y comparar la diferencia entre los dos valores de retorno, así:
unsigned long t;
t = (unsigned long)GetCycleCount();
//Hacer algo que requiera mucho tiempo...
t -= (unsigned long)GetCycleCount();