Benchmark
 All Classes Files Functions Variables Typedefs Macros
Macros | Functions
calloc.c File Reference

Ce programme compare l'utilisation de calloc ou de malloc pour allouer de l'espace mémoire. More...

#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <fcntl.h>
#include "benchmark.h"

Macros

#define MULTIPLICATEUR   10000
 
#define MAX   800000
 

Functions

int main (int argc, char *argv[])
 

Detailed Description

Ce programme compare l'utilisation de calloc ou de malloc pour allouer de l'espace mémoire.

Ce programme va donc allouer de l'espace avec calloc d'une part et malloc d'autre part, en comparant les temps nécessaires à chacun.

Macro Definition Documentation

#define MAX   800000
#define MULTIPLICATEUR   10000

Function Documentation

int main ( int  argc,
char *  argv[] 
)
23  {
24  // Déclare un timer, ainsi que deux recorder qui vont contenir les résultats de l'exécution du programme
25  timer * t = timer_alloc();
26  recorder * mal_rec = recorder_alloc("malloc.csv");
27  recorder * cal_rec = recorder_alloc("calloc.csv");
28 
29  void* res;
30  int i;
31  for(i=MULTIPLICATEUR; i< MAX; i+=MULTIPLICATEUR) {
32  start_timer(t);
33  res = malloc(i);
34  write_record(mal_rec, i+MULTIPLICATEUR, stop_timer(t));
35  free(res);
36 
37  start_timer(t);
38  res = calloc(i,1);
39  write_record(cal_rec, i+MULTIPLICATEUR, stop_timer(t));
40  free(res);
41  }
42 
43  recorder_free(mal_rec);
44  recorder_free(cal_rec);
45  timer_free(t);
46 
47  return EXIT_SUCCESS;
48 }
#define MAX
Definition: calloc.c:20
void timer_free(timer *t)
Retourne le temps en nanosecondes depuis le début de mesure dans t
Definition: benchmark.c:172
recorder écrit les temps dans un fichier .csv
Definition: benchmark.c:208
void write_record(recorder *rec, long int x, long int time)
Écris le temps time en correspondance avec x
Definition: benchmark.c:245
timer permet de mesurer le temps écoulé entre deux moments
Definition: benchmark.c:43
timer * t
Definition: memfork.c:25
#define MULTIPLICATEUR
Definition: calloc.c:19
int i
Definition: mutsem.c:43
void start_timer(timer *t)
Stoque le temps actuel comme début de la mesure dans t
Definition: benchmark.c:87
recorder * recorder_alloc(char *filename)
Alloue un recorder
Definition: benchmark.c:219
void recorder_free(recorder *rec)
Libère toutes les resources utilisées par rec
Definition: benchmark.c:263
timer * timer_alloc()
Alloue un timer
Definition: benchmark.c:63
long int stop_timer(timer *t)
Retourne le temps en nanosecondes depuis le début de mesure dans t
Definition: benchmark.c:133