Mémoire à allouer optimale pour une copie de fichier

Résolu
0v3rb1t Messages postés 7 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 12 mai 2007 - 1 mai 2007 à 19:31
0v3rb1t Messages postés 7 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 12 mai 2007 - 1 mai 2007 à 19:42
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2007 à 19:40
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++
3
0v3rb1t Messages postés 7 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 12 mai 2007
1 mai 2007 à 19:42
Merci :)
0
Rejoignez-nous