[LINUX] Zeitmessung mit einer Uhr

Ich habe eine Bibliothek zur Zeitmessung mit einer Uhr erstellt.

Unterstützt

C Sprachstandard

Compiler

OS

Ich kenne den Rest nicht

Logik

  1. Verwenden Sie für Clang __builtin_readcyclecounter ()
  2. Verwenden Sie __rdtsc () für die GCC- und x86-Architektur
  3. Verwenden Sie für GCC und Linux timespec_get ()

Ich kenne den Rest nicht

Quellcode

clockcycle.h


#ifndef CLOCKCYCLE_H
#define CLOCKCYCLE_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif // __cplusplus

#ifdef __clang__
static inline uint64_t now() {
	return __builtin_readcyclecounter();
}
#elif defined(__GNUC__)
#if defined(__i386__) || defined(__x86_64__) || defined(__amd64__)
#include <x86intrin.h>
static inline uint64_t now() {
	return __rdtsc();
}
#elif defined(__linux__)
#include <time.h>
static inline uint64_t now() {
	struct timespec ts = {0, 0};
	timespec_get(&ts, TIME_UTC);
	return (uint64_t)(ts.tv_sec) * 1000000000 + ts.tv_nsec;
}
#else
#error unsupported architecture
#endif
#endif

#ifdef __cplusplus
}
#endif // __cplusplus

#endif // CLOCKCYCLE_H

abschließend

Eigentlich möchte ich den Code der Anweisung umschreiben, um auch die Uhr für ARM zu lesen, und dabei auf Folgendes verweisen.

https://stackoverflow.com/questions/40454157/is-there-an-equivalent-instruction-to-rdtsc-in-arm/40455065

Recommended Posts

Zeitmessung mit einer Uhr
Berechnungszeitmessung mit maf
Schreiben Sie die Messung der Verarbeitungszeit mit der with-Klausel etwas einfacher
Zeitmessung
Python-Zeitmessung
Beispiel zum Zeichnen einer einfachen Uhr mit ebiten
Messung der Ausführungszeit
Versuchen Sie die Gesichtserkennung in Echtzeit mit einer Webkamera
Pfeffer-Tutorial (5): Verwenden eines Tablets
Verwenden eines Druckers mit Debian 10
Messung der Ausführungszeit mit Python With
Ein Memorandum zur Verwendung von eigen3
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Ich habe eine Instanz zu einem bestimmten Zeitpunkt mit AWS Lambda gestoppt
Generieren Sie ein Docker-Image mit Fabric
Ein Memorandum bei der Verwendung von schöner Suppe
Erstellen einer Webanwendung mit Flask ②
Ich habe einen Line-Bot mit Python gemacht!
Lerne Zundokokiyoshi mit einem einfachen RNN
Erstellen Sie mit tkinter eine Python-GUI
Zeichnen einer Silbersteinkurve mit Python
Erstellen Sie mit TensorFlow eine Gesichtserkennung
Erstellen Sie ein verschachteltes Wörterbuch mit defaultdict
Kollektive Volumenmessung mit FSL
Erstellen einer einfachen Tabelle mit Stettytable
[FSL] Bildmessung mit ROI (VOI)
Erstellen einer Webanwendung mit Flask ①
Verwenden einer seriellen Konsole unter Ubuntu 20.04
Erstellen eines Lernmodells mit MNIST
Die Geschichte der Verwendung von Python reduziert
Erstellen einer Webanwendung mit Flask ③
Erstellen Sie die CRUD-API mit der Fast API
Gesichtserkennung mit einem Kaskadenklassifikator
Erstellen einer Webanwendung mit Flask ④
Verwenden einer Webkamera mit Raspberry Pi
Erstellen Sie mit Boost.Python einen C-Sprach-Wrapper
Python> Verarbeitungszeitmessung> time.time () --start_time
Ich werde es nicht mehr schwer haben. .. Multiprozess mit Pythons Standardbibliothek.
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden