[LINUX] Mesure du temps à l'aide d'une horloge

J'ai fait une bibliothèque de mesure du temps à l'aide d'une horloge.

Prise en charge

Norme de langage C

compilateur

OS

Je ne connais pas le reste

logique

  1. Pour Clang, utilisez __builtin_readcyclecounter ()
  2. Utilisez __rdtsc () pour l'architecture GCC et x86
  3. Pour GCC et Linux, utilisez timespec_get ()

Je ne connais pas le reste

Code source

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

en conclusion

En fait, je voudrais réécrire le code de l'instruction pour lire également l'horloge pour ARM, en me référant à ce qui suit.

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

Recommended Posts

Mesure du temps à l'aide d'une horloge
Mesure du temps de calcul à l'aide de maf
Écrire la mesure du temps de traitement un peu plus facilement en utilisant la clause with
mesure du temps
mesure du temps python
Exemple pour dessiner une horloge simple en utilisant ebiten
Mesure du temps d'exécution
Essayez la détection des visages en temps réel à l'aide d'une webcam
Tutoriel Pepper (5): Utilisation d'une tablette
Utiliser une imprimante avec Debian 10
Mesure du temps d'exécution avec Python avec
Un mémorandum d'utilisation de eigen3
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
J'ai arrêté une instance à un moment précis à l'aide d'AWS Lambda
Générer une image Docker à l'aide de Fabric
Un mémorandum lors de l'utilisation d'une belle soupe
Créer une application Web avec Flask ②
J'ai fait un Line-bot avec Python!
Apprenez Zundokokiyoshi en utilisant un simple RNN
Créer une interface graphique python à l'aide de tkinter
Dessiner une courbe Silverstone en utilisant Python
Créer un outil de reconnaissance de visage à l'aide de TensorFlow
Créer un dictionnaire imbriqué à l'aide de defaultdict
Mesure collective du volume à l'aide du FSL
Créer un tableau simple à l'aide de prettytable
[FSL] Mesure d'image à l'aide du ROI (VOI)
Créer une application Web avec Flask ①
Utilisation d'une console série sur Ubuntu 20.04
Créer un modèle d'apprentissage à l'aide de MNIST
L'histoire de l'utilisation de la réduction de Python
Créer une application Web avec Flask ③
Créer une API CRUD à l'aide de l'API rapide
Détection de visage à l'aide d'un classificateur en cascade
Créer une application Web avec Flask ④
Utiliser une webcam avec Raspberry Pi
Créez un wrapper de langage C à l'aide de Boost.Python
python> Traitement de la mesure du temps> time.time () --start_time
Je n'aurai plus de difficultés. .. Multi-processus utilisant la bibliothèque standard de Python.
Une note utile lors de l'utilisation de Python après une longue période