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 C++ Discussion :

Optimiser la lecture d'un fichier


Sujet :

Langage C++

Mode arborescent

Invité Optimiser la lecture d'un... 29/01/2013, 11h34
Emmanuel Deloget Pourquoi pas ? Si tu génère... 29/01/2013, 16h28
imperio sqlite me semble aussi etre... 29/01/2013, 16h39
Invité Le problème que je suppose... 29/01/2013, 18h25
Emmanuel Deloget Ce qui veut dire que tu... 30/01/2013, 00h49
JolyLoic L'expérience ? ;) En tout... 30/01/2013, 08h52
Invité J'ai dit n'importe quoi, je... 30/01/2013, 10h45
white_tentacle Je ne connais pas les perfs... 31/01/2013, 14h30
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Optimiser la lecture d'un fichier
    Bonjour

    Je cherche actuellement à optimiser mon programme qui lit des données dans un fichier, j'ai lu certains articles à ce sujet, mais cela ne m'a pas vraiment éclairé.

    Voici la situation :

    Les fichier sont des fichiers de données brutes, organisées selon un structure précise : d'abord une date, puis un char, puis un int, et deux doubles, etc, le tout complété par une séquence de fin de bloc (\n\t\0\n). Seulement la plus grande partie de ces blocs est de taille variable.

    Chaque fichier contient plusieurs de ces blocs, classés selon leur date (un fichier contient une heure d'enregistrement).

    Mon programme et codé avec Qt, j'ustilise donc QFile et QDataStream pour lire et écrire le fichier (la date mentionnée plus haut est en fait un QTime sérialisé par le QDataStream). C'est fait de façon assez basique (un peu dans l'urgence) avec la méthode bétémé : stream >> QTime >> char >> int >> double etc.

    La taille variable des blocs implique que je doive les lire en entier, même si je ne m'intéresse qu'à ceux d'après, pour arriver aux suivants.

    Le problème est qu'actuellement, un fichier comprenant une heure complète prend à peu près 3 secondes à se lire, je vous laisse faire le compte lorsque que je charge 4 jours d'un coup.

    Donc, j'aimerais savoir s'il existe un moyen d'accélérer la lecture de mes fichiers, une autre façon de coder à laquelle je n'aurais pas pensé ? La STL ou une autre librairie serait-elle plus performante ? Ou dois-je revoir la structure de mes fichier si je veux éviter les longues attentes ?

    Question subsidiaire : devrais-je envisager de remplacer mon système "fait main" par un SGBD ? Sachant que la quantité de données enregistrées peut atteindre 500 Mo par jour, mais que seule l'application concernée y accède. J'ai vu par exemple SQLite, très intéressant pour son intégration dans l'application, mais que la taille de mes données ne rend pas viable.

    Cordialement.
    Dernière modification par Invité ; 29/01/2013 à 12h05.

Discussions similaires

  1. [ksh]Optimiser la lecture de gros fichiers gz.
    Par xodblux dans le forum Linux
    Réponses: 5
    Dernier message: 09/12/2008, 23h03
  2. Optimisation de lecture de gros fichier
    Par uriotcea dans le forum Windows
    Réponses: 3
    Dernier message: 23/11/2006, 19h00
  3. [Perf] Optimiser la lecture d'un fichier de taille > 2 m
    Par sacofan dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 22/07/2005, 13h25
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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