GNU/Linux >> Linux Esercitazione >  >> Linux

clock_gettime() è adeguato per tempi inferiori al microsecondo?

No. Dovrai utilizzare il codice specifico della piattaforma per farlo. Su x86 e x86-64, puoi utilizzare 'rdtsc' per leggere il contatore del timestamp.

Effettua il porting dell'assembly rdtsc che stai utilizzando.

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

Ho bisogno di un timer ad alta risoluzione per il profiler integrato nella build Linux della nostra applicazione. Il nostro profiler misura ambiti piccoli come singole funzioni, quindi necessita di una precisione del timer superiore a 25 nanosecondi.

Hai considerato oprofile o perf ? È possibile utilizzare l'hardware del contatore delle prestazioni sulla CPU per ottenere i dati di profilatura senza aggiungere strumentazione al codice stesso. Puoi visualizzare i dati per funzione o anche per riga di codice. L '"unico" svantaggio è che non misurerà il tempo di clock consumato, ma misurerà il tempo di CPU consumato, quindi non è appropriato per tutte le indagini.


Linux
  1. Tutorial sui comandi dell'ora di Linux per principianti (con esempi)

  2. Necessità di conoscere le tecnologie per amministratori di sistema junior

  3. Stima il tempo o il lavoro rimasto per finire per Rsync?

  4. Git chiede il nome utente ogni volta che spingo

  5. 'tail -f' per un periodo di tempo specifico

Cronopete:un clone della macchina del tempo di Apple per Linux

Come eseguire un comando per un tempo specifico in Linux

I 5 migliori software di monitoraggio del tempo per Linux

Gestione del tempo:strumenti e strategie indispensabili per gli amministratori di sistema

Come configurare il tuo sistema operativo Raspberry Pi per usarlo per la prima volta

I 20 migliori software di monitoraggio del tempo per desktop Linux