Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1447 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

STL: ifstream

n°204357
HelloWorld
Salut tout le monde!
Posté le 29-08-2002 à 05:18:42  profilanswer
 

Reprise du message précédent :
Quelques questions/suggestions
 
Se dire qu'en utilisant la STL ou un buffer de la taille du fichier on aura pas de probleme de buffer trop petit lors du get_line est AMHA pas très acceptable.
Le problème n'est que reporté, pas éliminé.
Un tableau a une limite. Celle-ci peut etre atteinte.
Augmenter la taille du tableau ne change en rien le fait que sa limite peut toujours être atteinte.
Du coup : que se passe-t-il avec la version *all STL* si le fichier est trop gros/la ligne trop longue/pas assez de mémoire (au choix :)) ?
Tu n'as pas à te soucier de l'alloc de place, mais tu dois tout de même te soucier du cas ou y'a pas assez de place.
 
Pour le modele producteur/conso, je pense que ca peut etre benefique. Notament si ton programme n'est pas le seul à acceder au disque (genre une copie de gros fichier est en cours).
Le fichier mappé ... perso je suis pas cho (c'est pas destiné à un autre usage ?)
Le fait d'avoir un buffer d'une taille donnée (taille que tu décide en fonction du temps que ca prend à parser ... histoire de tenir 10 secondes par exemple tout en restant dans les limites de l'acceptable nivo memoire, genre 1 Mo) que le premier thread s'occupe de maintenir plein et que le second s'acharne à vider ne doit pas être sorcier à coder.
En utilisation classique je ne pense pas que ca apporte grand chose.
Mais ton programme resistera mieux a un acces disque perturbé et autre avantage que je trouve a utiliser des thread pour les acces disque : ton programme est plus réactif.
Perso je deteste qu'un programme se fige quand il accede au lecteur de disquette ou qu'il soit lent a la detente quand il sollicite fortement le disque. (genre Word quand on enregistre un gros doc... plus rien ne répond :fou:).
La, seul ton thread d'acces disque sera bloque et pas ton programme principal.
 
Au fait, c'est un parser de quoi ? (ca m'a echapé)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 29-08-2002 à 05:18:42  profilanswer
 

n°206116
Musaran
Cerveaulté
Posté le 31-08-2002 à 01:19:47  profilanswer
 

HelloWorld a écrit a écrit :

Tu n'as pas à te soucier de l'alloc de place, mais tu dois tout de même te soucier du cas ou y'a pas assez de place.


Le problème reste le même que tu utilises la STL ou les fonctions classiques.
fstream ne donne pas de taille de fichier, mais une indication d'épuisement puisque c'est un flot. Et un failbit mis pour identifier le problème.
 
Je précise que le mappage de fichier ne réserve pas de la mémoire, mais de l'espace d'adressage.
D'où une limite quelque part sous 2 Go (espace d'adressage d'une application).
 
Pour l'histoire des threads qui se bloquent tu as raison.
Ça vaudrait peut-être le coup de faire un thread dédié à la lecture anticipée du fichier.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[C++] délimiteur sous ifstream[C++ STL] Quelles sont les différences entre vector et list?
[C++]: Problèmes de templates avec la STL[STL fstream]
gcc et la STL: pb de link[VC++] Dll et STL: probleme de recopie (???)
[C++ STL] mapClasse graphe en C++ et utilisation de STL
[C++] STL/Libraire pour ouvrir des images 
Plus de sujets relatifs à : STL: ifstream


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR