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

Compare les performances d'une copie avec et sans mmap More...

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "benchmark.h"
#include "copy.h"

Macros

#define FILE_SIZE   0x1000000
 
#define MAX_SIZE   0x1000000
 
#define IN   "tmpin.dat"
 
#define OUT   "tmpout.dat"
 

Functions

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

Detailed Description

Compare les performances d'une copie avec et sans mmap

Macro Definition Documentation

#define FILE_SIZE   0x1000000
#define IN   "tmpin.dat"
#define MAX_SIZE   0x1000000
#define OUT   "tmpout.dat"

Function Documentation

int main ( int  argc,
char *  argv[] 
)
19  {
20  int err;
21 
22  timer *t = timer_alloc();
23  recorder *rw_rec = recorder_alloc("rw.csv");
24  recorder *mmap_rec = recorder_alloc("mmap.csv");
25 
26  size_t len = 0;
27  int page_size = getpagesize();
28 
29  for (len = 0x40; len <= MAX_SIZE; len *= 2) {
30  read_write(t, rw_rec, IN, OUT, FILE_SIZE, len, 0);
31  }
32 
33  for (len = page_size; len <= MAX_SIZE; len *= 2) {
34  mmap_munmap(t, mmap_rec, IN, OUT, FILE_SIZE, len);
35  }
36 
37  recorder_free(rw_rec);
38  recorder_free(mmap_rec);
39 
40  return EXIT_SUCCESS;
41 }
void mmap_munmap(timer *t, recorder *rec, char *in, char *out, size_t file_size, size_t len)
Copie le fichier in dans le fichier out avec mmap
Definition: copy.c:274
recorder écrit les temps dans un fichier .csv
Definition: benchmark.c:208
#define FILE_SIZE
Definition: mmap.c:13
#define MAX_SIZE
Definition: mmap.c:14
void read_write(timer *t, recorder *rec, char *in, char *out, size_t file_size, size_t len, int flags)
Copie le fichier in dans le fichier out sans stdio
Definition: copy.c:90
timer permet de mesurer le temps écoulé entre deux moments
Definition: benchmark.c:43
timer * t
Definition: memfork.c:25
#define IN
Definition: mmap.c:16
#define OUT
Definition: mmap.c:17
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