GNU/Linux >> Tutoriales Linux >  >> Linux

¿Clock_gettime() es adecuado para tiempos de submicrosegundos?

No. Deberá usar un código específico de la plataforma para hacerlo. En x86 y x86-64, puede usar 'rdtsc' para leer el contador de marca de tiempo.

Simplemente transfiera el ensamblado rdtsc que está utilizando.

__inline__ uint64_t rdtsc(void) {
  uint32_t lo, hi;
  __asm__ __volatile__ (      // serialize
  "xorl %%eax,%%eax \n        cpuid"
  ::: "%rax", "%rbx", "%rcx", "%rdx");
  /* We cannot use "=A", since this would use %rax on x86_64 and return only the lower 32bits of the TSC */
  __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
  return (uint64_t)hi << 32 | lo;
}

Necesito un temporizador de alta resolución para el generador de perfiles integrado en la compilación de Linux de nuestra aplicación. Nuestro generador de perfiles mide alcances tan pequeños como funciones individuales, por lo que necesita una precisión de temporizador superior a 25 nanosegundos.

¿Has considerado oprofile o perf ? Puede usar el hardware del contador de rendimiento en su CPU para obtener datos de perfiles sin agregar instrumentación al código en sí. Puede ver los datos por función o incluso por línea de código. El "único" inconveniente es que no medirá el tiempo de reloj de pared consumido, medirá el tiempo de CPU consumido, por lo que no es apropiado para todas las investigaciones.


Linux
  1. 5 consejos para ayudarlo a prepararse para los exámenes de certificación técnica

  2. Git pide un nombre de usuario cada vez que presiono

  3. Mida el tiempo en Linux:¿tiempo frente a reloj frente a getrusage frente a clock_gettime frente a gettimeofday frente a timespec_get?

  4. Medición del tiempo transcurrido en linux para un programa c

  5. 'tail -f' por una cantidad de tiempo específica

Cronopete:un clon de Time Machine de Apple para Linux

Cómo ejecutar un comando durante un tiempo específico en Linux

Los 5 mejores programas de seguimiento del tiempo para Linux

Gestión del tiempo:herramientas y estrategias imprescindibles para los administradores de sistemas

Cómo configurar tu sistema operativo Raspberry Pi para usarlo por primera vez

Los 20 mejores programas de seguimiento de tiempo para escritorio Linux