Ce programme compare le temps nécessaire pour passer un argument de N byte à une fonction et celui nécessaire pour passer le pointeur vers cet argument. More...
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <string.h>
#include "benchmark.h"
Classes | |
struct | arg1 |
struct | arg2 |
struct | arg4 |
struct | arg8 |
struct | arg16 |
struct | arg32 |
struct | arg64 |
struct | arg128 |
Macros | |
#define | MAX_SIZE 3 |
#define | TURN 100000000 |
Functions | |
void | fctpt (void *arg) |
void | fctval1 (struct arg1 arg) |
void | fctval2 (struct arg2 arg) |
void | fctval4 (struct arg4 arg) |
void | fctval8 (struct arg8 arg) |
void | fctval16 (struct arg16 arg) |
void | fctval32 (struct arg32 arg) |
void | fctval64 (struct arg64 arg) |
void | fctval128 (struct arg128 arg) |
int | main (int argc, char *argv[]) |
Ce programme compare le temps nécessaire pour passer un argument de N byte à une fonction et celui nécessaire pour passer le pointeur vers cet argument.
Compare donc les performances en passant des arguments de plus en plus gros sur le stack contre un pointeur de taille fixe
Note : Pour ne pas polluer les tests, il a été décidé de ne pas utiliser de pointeurs de fonction.
#define MAX_SIZE 3 |
#define TURN 100000000 |
void fctval1 | ( | struct arg1 | arg | ) |
void fctval128 | ( | struct arg128 | arg | ) |
void fctval16 | ( | struct arg16 | arg | ) |
void fctval2 | ( | struct arg2 | arg | ) |
void fctval32 | ( | struct arg32 | arg | ) |
void fctval4 | ( | struct arg4 | arg | ) |
void fctval64 | ( | struct arg64 | arg | ) |
void fctval8 | ( | struct arg8 | arg | ) |
int main | ( | int | argc, |
char * | argv[] | ||
) |