IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Tamponiser avant de copier dans un fichier ?


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Par défaut Tamponiser avant de copier dans un fichier ?
    Bonjour.

    J'écris un programme qui doit examiner chaque ligne d'un fichier d'entrée et copier dans un fichier de sortie les lignes qui satisfont à certaines conditions.

    Les lignes qui doivent être copiées sont nombreuses (presque toutes).

    Je me demande si chaque ligne à copier doit être écrite immédiatement dans le fichier de sortie ou si, pour éviter de nombreux accès au disque (je suppose qu'écrire une ligne dans un handle de fichier représente un accès au disque), il vaut mieux commencer par mettre toutes ces lignes dans une variable de chaîne qu'on copiera en une fois dans le fichier de sortie.

    On me dira peut-être que je n'ai qu'à faire un test, mais s'il y a sur le forum quelqu'un qui connaît cette question et à qui cela plaît d'en parler, j'en apprendrai peut-être plus et plus vite qu'en chipotant moi-même.

    Merci d'avance.

    M.

  2. #2
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Salut !

    Je pense qu'il vaut mieux tout copier d'un coup...
    Parce que si tu gardes tout dans une chaîne, tu devras rajouter partout des \n pour les retours à la ligne dans ton fichier, et en plus les chaînes de 3 km de long, je trouve ça moyen moyen personnalement...
    Et puis, ça évite d'encombrer la mémoire vive en plus. Je pense qu'une fois que le handle est ouvert, y accéder en écriture ne prend pas beaucoup de temps.

    Mais je t'avouerais que je n'est pas fais de profil (c'est comme ça qu'on dit ?) pour corroborer mes dires...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Par défaut
    Citation Envoyé par Woufeil
    Salut !

    Je pense qu'il vaut mieux tout copier d'un coup...
    Parce que si tu gardes tout dans une chaîne, tu devras rajouter partout des \n pour les retours à la ligne dans ton fichier, et en plus les chaînes de 3 km de long, je trouve ça moyen moyen personnalement...
    Et puis, ça évite d'encombrer la mémoire vive en plus. Je pense qu'une fois que le handle est ouvert, y accéder en écriture ne prend pas beaucoup de temps.

    Mais je t'avouerais que je n'est pas fais de profil (c'est comme ça qu'on dit ?) pour corroborer mes dires...
    Merci pour la réponse.

    Je crois que je vais faire des tests et que j'indiquerai mes conclusions.

    M.

  4. #4
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Mais j'ai dit n'importe quoi moi ! J'aurais du me relire

    Je voulais dir que je pensais qu'il était mieux de copier ligne à ligne. Ca colle mieux à mon explication comme ça

    Désolé...

    Tu nous montreras le résultat de tes tests

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 107
    Par défaut
    Citation Envoyé par Woufeil
    Mais j'ai dit n'importe quoi moi ! J'aurais du me relire

    Je voulais dir que je pensais qu'il était mieux de copier ligne à ligne. Ca colle mieux à mon explication comme ça

    Désolé...

    Tu nous montreras le résultat de tes tests
    Merci de la rectification, mais j'avais compris.

    J'ai en effet l'impression que mon idée de tamponiser dans une chaîne n'est pas très bonne, pour les motifs que tu as suggérés et aussi parce qu'il faut autoconcaténer une longue chaîne un grand nombre de fois, ce qui est sans doute long.

    J'ai rédigé le programme sans tamponisation et il me semble s'exécuter avec la rapidité souhaitable.

    Si j'ai le courage de faire des tests, je dirai le résultat.

    M.

  6. #6
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    C'est le piège d'avoir un opérateur pour concaténer, on ne s'aperçoit pas de la lourdeur de l'opération...'fin bref, si tu penses que ton sujet est résolu, met le tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/10/2013, 15h55
  2. Réponses: 9
    Dernier message: 07/02/2013, 10h22
  3. Réponses: 2
    Dernier message: 07/03/2012, 10h00
  4. Condition pour copier dans un fichier
    Par Lereyn dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/01/2010, 09h11
  5. Réponses: 6
    Dernier message: 13/04/2006, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo