[C] Chargement en mémoire d'un fichier ?

Résolu/Fermé
KunGu Messages postés 1168 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 17 mars 2013 - 18 mars 2012 à 18:04
 Yoda - 19 mars 2012 à 14:52
Bonjour tout le monde,
J'ai une petite question aux connaisseurs de C ...
Je projette le développement d'un petit programme, et je me pose une question ...
Mon programme va utiliser une base de données qu'il va créer lui même afin de stocker quelques informations. Cette base sera contenue dans un fichier.
Est-il préférable de manipuler tout le temps ce dit fichier afin de récupérer/modifier ces informations ou plutôt de faire tout le traitement sur des variables mémoires pour ensuite à la fin écrire tout dans un fichier ?
Et bien sûr, à chaque lancement charger toute cette base de données en mémoire ?

Merci.


A voir également:

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
18 mars 2012 à 22:49
Cela dépend de plusieurs choses dont notamment la taille de la base de données.
Si c'est pas une grosse base, autant mettre tout en mémoire et écrire à la mettre à jour à la fin. Ca sera beaucoup plus performant.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
19 mars 2012 à 11:01
Salut.
Je dirai comme fiddy que ça dépend de la taille de la base. Si ta base est trop volumineuse (>~0.5*RAM) les opérations de lecture écriture de l'ensemble vont être très long. Il faut savoir que ce qui limite les performances d'un PC actuellement ce sont les accès au disque.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
19 mars 2012 à 11:08
hello
penser qu'avec toutes les données en mémoire, les modifications ou ajouts seront perdus en cas de crash du programme, du PC ou de l'alimentation électrique.
Prévoir des mises à jour des fichiers.
0
Bonjour,

Je ne suis pas spécialiste en C, mais je dirai que la question vaut pour tous les langages.
1)Taille de la base, OK, je ne reviens pas dessus
2)Structure de la base
Si c'est une base de type fichier texte (1 enregistrement par ligne, lignes de longueurs ingales) alors 1 seul moyen:
- tout lire
- exploiter
- tout ecrire.

Si c'est une base avec des enregistrements bien formatés (en C je crois que c'est des structures) alors on peut accéder aux enregistements directement et individuellement sur le disque, c'est rapide et mis à jour en temps réel.

Pour des traitements comme des tri sur critères et autres opérations, on peut charger uniquement la partie interessante en definissant des clés ou des index.

;)
0