Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 72 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Problème de stream sous linux.

 
n°3965
jardin
Yom? Le meilleur d'entre nous!
Profil : Membre
Posté le 30-04-2003 à 14:24:15  profilanswer
 

Bonjour à tous!
 
Voilà mon problème:
J'ai écrit voilà quelque temps un programme en C++. Ce dernier manipule des fichiers. Pour optimiser mes traitements, j'ai décidé de faire touts le travail dans le core du prog. Donc en fait je lis toutes les données de mon fichier d'entrée, je bufferise, je traite.. Et je rebalance le résultat soit en fichier, soit dans la sortie standard...
 
Oui mais voilà mon programme marche bien dans l'environnement de prod (Disons la test de la prod).. Et pas dans l'environnement de test de stress... J'ai trouvé pourquoi! Dès qu'on bufferise un peu trop de donnée... Le prog s'écroule complètement... Donc quand mon fichier en entrée est trop gros, j'arrive pas à bufferiser correctement. Heureusement pour moi, les fichiers en question sont en ascii... Donc j'ai utilisé une string (du type std::string de la librairie gnu c++)... Et ca marche.
 
Voui, mais quid des fichiers binaires??
Pour bufferiser j'utilise la libraire libio (GNU C++ iostream library).
 
Des idées??

n°3968
Hinou
Possède blague a 2 balle a +10
Profil : Membre
Posté le 30-04-2003 à 17:11:05  profilanswer
 

ben en faite ton buffer tu lui donne une taille il me semble donc il sert si tu lis toujour la meme taille de donnée a savoir que si tu lis un fichier secquencielement (ligne a ligne arreter par un cr lf ) tes lignes ne sont pas toute identique et tu risque de créer un buffer qui ne sera pas rempli
 
si par contre tu lis un fichier binaire non formaté il est bon de créer un buffer car sa te permet de traiter tes donnée par morceau et non tout d'un coup
 
d'un autre coté si tu as un problème de bufferisation soit tu oublie de suprimer tes buffer et tu sature ta memoire soit y a une couille quelque part parceque ton buffer sert a traiter qu'un certain nombre de bit que TU as décidé (sauf bien sur en cas de buffer dynamique)
 
Ceci dis vu l'heure tardive et l'alcool qui circule dans mon sang je peut me planter sevère  [:virusfight]  :D


Message édité par Hinou le 30-04-2003 à 17:15:05
n°4002
jardin
Yom? Le meilleur d'entre nous!
Profil : Membre
Posté le 05-05-2003 à 10:56:02  profilanswer
 

Je fais tout en dynamique... Si c'est pour faire des buffer avec taille déterminé, autant faire du C...


---------------
Jardin
----------------------------------------------------------------------------
-Dans la vie il y a 2 sortes d'homme,ceux qui ont un pistolet chargé dans la main, et ceux qui creusent.
-Toi tu creuses!!!
n°4012
Hinou
Possède blague a 2 balle a +10
Profil : Membre
Posté le 07-05-2003 à 18:11:21  profilanswer
 

:heink:  
 
un buffer dynamique mais bien sur et tu te base sur quoi pour determiner la taille de ton buffer ?

n°4034
jardin
Yom? Le meilleur d'entre nous!
Profil : Membre
Posté le 12-05-2003 à 09:39:15  profilanswer
 

Sur ce que je lis dans le fichier :)
Plus je lis, plus j'augmente mon buffer :)


---------------
Jardin
----------------------------------------------------------------------------
-Dans la vie il y a 2 sortes d'homme,ceux qui ont un pistolet chargé dans la main, et ceux qui creusent.
-Toi tu creuses!!!
n°4044
Hinou
Possède blague a 2 balle a +10
Profil : Membre
Posté le 13-05-2003 à 18:38:58  profilanswer
 

sa ok mais bon ou situ tu ta limite ? sur un fichier texte avec des retour chariot je suis daccord tu peut prendre le cr lf mais pour un fichier ta pas d'arret donc ton buffer il grandi grandi grandi grandi jusqu'a presque faire la taille de ton fichier pas cool
 
Faut de temps en temps metre une limite genre un ptit
 
 
si buffer superieur a 1024 alors  
 
traiter
 
sinon continuer l'augmentation de buffer


Message édité par Hinou le 13-05-2003 à 18:41:18
n°4050
jardin
Yom? Le meilleur d'entre nous!
Profil : Membre
Posté le 14-05-2003 à 10:03:16  profilanswer
 

Le traitement se fait sur l'ensemble du fichier... Je peux pas faire un bout de traitement par ci, et un par là... Je traite la globalité...
C'est pourquoi mon flux est aussi gros que le fichier...
Attends mes fichiers font au max 20 Mo!!
Tu vas pas me dire que je peux pas réserver en mémoire 20Mo sachant que mes serveurs ont 512Mo de libre voire 1Go pour certains!!!
Si je crée une string et qu'elle fait 20Mo no prob... Si c'est un flux c'est la misère!


---------------
Jardin
----------------------------------------------------------------------------
-Dans la vie il y a 2 sortes d'homme,ceux qui ont un pistolet chargé dans la main, et ceux qui creusent.
-Toi tu creuses!!!
n°4091
Hinou
Possède blague a 2 balle a +10
Profil : Membre
Posté le 20-05-2003 à 20:31:06  profilanswer
 

ben le probleme c'est le mode d'acces au donner si tu utilise un flux c'est pour lire les information que dans un seul sens et c'est pas vraiment fais pour pouvoir revenir sur ce que tu a lu cad que tu si tu as lu 15 meg si tu lui demande de revenir sur les 3 premier meg y a de tres forte chance que sa plante


Aller à :
Ajouter une réponse