[C] Chargement en mémoire d'un fichier ?
Résolu
KunGu
Messages postés
1169
Date d'inscription
Statut
Membre
Dernière intervention
-
Yoda -
Yoda -
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.
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:
- [C] Chargement en mémoire d'un fichier ?
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
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.
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.
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.
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.
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.
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.
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.
;)
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.
;)