Mémoire à allouer optimale pour une copie de fichier [Résolu]

Signaler
Messages postés
7
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
12 mai 2007
-
Messages postés
7
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
12 mai 2007
-
Bonjour.

1) Je souhaiterai connaitre la valeur optimale de mémoire à allouer pour une copie de fichiers binaires.
2) De quel type doit être le pointeur qui reçoit la première adresse mémoire de l'allocation?

J'ai codé:
#define NOMBRE_BLOCS 1024*32  /* valeur optimale? */
...
int longueur;
int *zone_allouee = malloc(NOMBRE_BLOCS); /* int? */
...
        while((longueur = fread(zone_allouee, 1, NOMBRE_BLOCS, fichier_source)) != 0);
        {
            fwrite(zone_allouee,1,longueur,fichier_copie);
        }


Toute aide est la bienvenue.

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Il n'y a pas de taille optimale du buffer, 32 Ko étant disons une valeur plancher et la taille maxi serait la taille du cache du disque (8 Mo généralement). Fais des tests et prends une valeur médiane.

Le type (int*, BYTE* ou autre) on s'en fout, ne changera rien au code généré par le compilo.

ciao...
BruNews, MVP VC++
Messages postés
7
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
12 mai 2007

Merci :)