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

SL & STL C++ Discussion :

ifstream et lecture réseau


Sujet :

SL & STL C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut ifstream et lecture réseau
    Hello,

    Je dois charger en RAM (mémoire partagée) plusieurs Go de données. Pour la lecture, j'utilise un ifstream.

    • Si je fais cette opération en local, cela me prend quelques minutes.
    • Si je transfère les données d'un endroit distant sur un emplacement local (en dehors du code, via un bête glisser-déposer dans l'explorateur), cela me prend quelques minutes.
    • Si j'utilise le ifstream en le faisant aller lire les données via le réseau, cela prend une demi-heure.


    Qu'est-ce qui peut, dans le dernier, cas expliquer une telle explosion du temps de chargement ?

  2. #2
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Si tu dois lire des donnees sur le reseau, tu es limite par la limite de ce reseau. Exemple, tu es limite a 20 Mo/s.

    Cela te donne en gros 20 minutes pour un Go. Il n'y a pas moyen de faire mieux ainsi.

    Par-contre, si tu n'as pas besoin de toutes les donnes tout de suite, tu peux faire en sorte de telecharger les "prioritaires" d'abord et seulement ensuite le reste. Et si les donnees a telecharger sont toujours les meme, tu peux meme les stocker sur le disque local afin de ne pas avoir besoin de les retelecharger.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par imperio Voir le message
    Si tu dois lire des donnees sur le reseau, tu es limite par la limite de ce reseau.
    Pas seulement, puisque la somme du temps nécessaire pour faire un bête transfert réseau et du temps pour charger les données en local est 3 fois plus courte que de faire le chargement à travers le réseau.

  4. #4
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Citation Envoyé par oodini Voir le message
    Pas seulement, puisque la somme du temps nécessaire pour faire un bête transfert réseau et du temps pour charger les données en local est 3 fois plus courte que de faire le chargement à travers le réseau.
    Je crois avoir compris ce coup-ci (si ce n'est pas le cas, n'hesite surtout pas a me corriger). J'aurais tendance a penser qu'une fois qu'une donnee est arrivee tu l'interpretes aussitot en mettant en pause les transferts. Je me trompe ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Exact.

  6. #6
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Dans ce cas quel est le probleme ? Je te recommenderai bien les threads mais je pense que tu y as deja pense etant donne ton grade...

    Pour repondre a ta question initiale, je pense donc que tu dois paralleliser les traitements et le telechargement des donnees.

    Pour le coup j'ai vraiment pas l'impression de t'apporter une reponse...

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Le traitement en question consiste simplement à ranger ce que je viens de lire en mémoire, après avoir appliqué un reinterpret_cast.

Discussions similaires

  1. Mélange de données binaires et textuelles en lecture réseau
    Par hermes1983 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 25/02/2010, 10h58
  2. Ifstream > Lecture d'un fichier > Format
    Par Zenol dans le forum SL & STL
    Réponses: 15
    Dernier message: 19/12/2005, 11h04
  3. Réponses: 4
    Dernier message: 04/11/2005, 09h04
  4. [Réseau] détecter la fin de lecture dans un flux entrant
    Par al85 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 30/03/2005, 21h06
  5. [ifstream] pb lecture fichier non sequentielle
    Par bludo dans le forum SL & STL
    Réponses: 3
    Dernier message: 10/02/2005, 21h30

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