fonctions utiles pour écrire les .csv et mesurer le temps
More...
#include <stdio.h>#include <stdlib.h>#include <sys/time.h>#include <sys/times.h>#include <time.h>#include <unistd.h>#include "benchmark.h"Classes | |
| struct | timer |
timer permet de mesurer le temps écoulé entre deux moments More... | |
| struct | recorder |
recorder écrit les temps dans un fichier .csv More... | |
Macros | |
| #define | BILLION 1000000000 |
| #define | GETTIME_TO_NSEC(time_gettime) (((long) time_gettime.tv_sec) * BILLION + time_gettime.tv_nsec) |
| #define | CLOCK_TO_NSEC(time_clock) ((((long) time_clock) * BILLION) / CLOCKS_PER_SEC) |
| #define | TIMES_TO_NSEC(time_times) ((((long) time_times.tms_utime + time_times.tms_stime) * BILLION) / t->clock_ticks) |
| #define | GTOD_TO_NSEC(time_gtod) (((long) time_gtod.tv_sec) * BILLION + time_gtod.tv_usec * 1000) |
Functions | |
| timer * | timer_alloc () |
Alloue un timer More... | |
| void | start_timer (timer *t) |
Stoque le temps actuel comme début de la mesure dans t More... | |
| long int | stop_timer (timer *t) |
Retourne le temps en nanosecondes depuis le début de mesure dans t More... | |
| void | timer_free (timer *t) |
Retourne le temps en nanosecondes depuis le début de mesure dans t More... | |
| void | update_overhead () |
Mets à jours l'overhead More... | |
| long int | get_overhead () |
| recorder * | recorder_alloc (char *filename) |
Alloue un recorder More... | |
| void | write_record (recorder *rec, long int x, long int time) |
Écris le temps time en correspondance avec x More... | |
| void | write_record_n (recorder *rec, long int x, long int time, long n) |
Comme write_record mais divise time par n après avoir retiré l'overhead More... | |
| void | recorder_free (recorder *rec) |
Libère toutes les resources utilisées par rec More... | |
Variables | |
| volatile long int | overhead = -1 |
Temps nécessaire pour effectuer start_timer et stop_timer sans rien faire entre. More... | |
fonctions utiles pour écrire les .csv et mesurer le temps
Cette libraire contient timer pour mesurer le temps et recorder pour écrire les temps dans un fichier au format .csv qu'on peut plotter facilement avec gnuplot.
| #define BILLION 1000000000 |
| #define CLOCK_TO_NSEC | ( | time_clock | ) | ((((long) time_clock) * BILLION) / CLOCKS_PER_SEC) |
| #define GETTIME_TO_NSEC | ( | time_gettime | ) | (((long) time_gettime.tv_sec) * BILLION + time_gettime.tv_nsec) |
| #define GTOD_TO_NSEC | ( | time_gtod | ) | (((long) time_gtod.tv_sec) * BILLION + time_gtod.tv_usec * 1000) |
| #define TIMES_TO_NSEC | ( | time_times | ) | ((((long) time_times.tms_utime + time_times.tms_stime) * BILLION) / t->clock_ticks) |
| long int get_overhead | ( | ) |
| recorder* recorder_alloc | ( | char * | filename | ) |
Alloue un recorder
Les données seront écrites dans le fichier filename. En cas d'erreur, il exit avec EXIT_FAILURE.
| void recorder_free | ( | recorder * | rec | ) |
Libère toutes les resources utilisées par rec
| rec | le recorder auquel il faut libérer les resources |
| void start_timer | ( | timer * | t | ) |
Stoque le temps actuel comme début de la mesure dans t
| t | Le temps dans lequel on stoque le temps de début |
En cas d'erreur, affiche un message sur stderr et exit
| long int stop_timer | ( | timer * | t | ) |
Retourne le temps en nanosecondes depuis le début de mesure dans t
| t | Le temps dans lequel on a stoqué le temps de début |
En cas d'erreur, affiche un message sur stderr et exit
| timer* timer_alloc | ( | ) |
Alloue un timer
En cas de succès, retourne un timer, en cas d'erreur, affiche un message sur stderr et exit
| void timer_free | ( | timer * | t | ) |
| void update_overhead | ( | ) |
Mets à jours l'overhead
| void write_record | ( | recorder * | rec, |
| long int | x, | ||
| long int | time | ||
| ) |
Écris le temps time en correspondance avec x
L'overhead est d'abord retiré de time En cas d'erreur, il exit avec EXIT_FAILURE
| rec | le recorder dans lequel écrire, il est supposé non-NULL |
| x | l'abscisse |
| time | le temps à écrire en ordonnée |
| void write_record_n | ( | recorder * | rec, |
| long int | x, | ||
| long int | time, | ||
| long | n | ||
| ) |
Comme write_record mais divise time par n après avoir retiré l'overhead
| volatile long int overhead = -1 |
Temps nécessaire pour effectuer start_timer et stop_timer sans rien faire entre.
1.8.6