GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ist clock_gettime() für Submikrosekunden-Timing angemessen?

Nein. Sie müssen dazu plattformspezifischen Code verwenden. Auf x86 und x86-64 können Sie 'rdtsc' verwenden, um den Zeitstempelzähler zu lesen.

Portieren Sie einfach die rdtsc-Assembly, die Sie verwenden.

__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;
}

Ich brauche einen hochauflösenden Timer für den eingebetteten Profiler im Linux-Build unserer Anwendung. Unser Profiler misst Bereiche, die so klein sind wie einzelne Funktionen, daher benötigt er eine Timer-Präzision von besser als 25 Nanosekunden.

Haben Sie an oprofile gedacht? oder perf ? Sie können die Leistungsindikatorhardware auf Ihrer CPU verwenden, um Profilerstellungsdaten abzurufen, ohne dem Code selbst Instrumentierung hinzuzufügen. Sie können Daten pro Funktion oder sogar pro Codezeile anzeigen. Der "einzige" Nachteil besteht darin, dass es nicht die verbrauchte Zeit der Wanduhr misst, sondern die verbrauchte CPU-Zeit, sodass es nicht für alle Untersuchungen geeignet ist.


Linux
  1. Formatieren Sie Datum und Uhrzeit für Linux-Shell-Skript oder -Variable

  2. Git fragt jedes Mal nach dem Benutzernamen, wenn ich pushe

  3. Zeit in Linux messen - Zeit vs. Uhr vs. getrusage vs. clock_gettime vs. gettimeofday vs. timespec_get?

  4. Messen der verstrichenen Zeit in Linux für ein C-Programm

  5. 'tail -f' für eine bestimmte Zeit

Cronopete – Ein Time Machine Clone von Apple für Linux

So führen Sie einen Befehl für eine bestimmte Zeit in Linux aus

Top 5 Zeiterfassungssoftware für Linux

Zeitmanagement:unverzichtbare Tools und Strategien für Systemadministratoren

So konfigurieren Sie Ihr Raspberry Pi OS, um es zum ersten Mal zu verwenden

Die 20 besten Zeiterfassungssoftware für Linux-Desktop