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

Windows Forms Discussion :

Dataset vs. XML : question d'optimisation


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut Dataset vs. XML : question d'optimisation
    Bonjour à tous,

    Cette fois-ci, j'ai besoin de vos retours d'expériences pour savoir ce qui peut être le mieux pour mon projet.
    Toujours dans la création de mon UserControl, je me pose une question.

    Un des UserControls aura pour but de lire un fichier XML et d'en extraire chaque nœud de niveau 1 pour les afficher dans une ListView. Lorsque l'utilisateur cliquera sur un nœud, toutes les informations qu'il contient seront affichées dans la seconde partie de l'interface (divisée en deux panels avec un SplitContainer pour l'occasion).

    Ma question est donc la suivante : D'un point de vue "Rapidité d'exécution / Economie de ressources", quelle est la meilleure méthode ?
    • Lire le fichier XML une première fois pour peupler le TreeView et relire le fichier XML à chaque fois que l'utilisateur change de nœud pour afficher les informations qu'il contient.
    • Lire une seule fois le fichier XML pour remplir un Dataset qui servira alors à peupleur le TreeView et qui alimentera la seconde partie de l'interface à chaque changement de nœud par l'utilisateur.

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Je pencherais pour la 2° solution. Moins de fois tu parcours le fichier, mieux c'est.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    Mieux en terme de rapidité d'exécution.
    Mais si le fichier XML contient des centaines de nœuds bien fournis, le DataSet ne va pas faire augmenter la consommation de ressources de la machine ?

    C'est surtout ça qui me gêne, la taille que peut faire le DataSet une fois remplie ! Il bouffe directement dans la mémoire vive de la machine ou il est écrit dans un fichier qui sera détruit à la fermeture du programme ?

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Il est dans la mémoire.

    Après, pour être sûr, le mieux est que tu fasse des tests avec d'un côté le parcours via un XmlTextReader par exemple et de l'autre le DataSet.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si ton fichier xml fait 10Mo, en ram dans un dataset il devrait prendre beaucoup moins (dans une collection typée ca devrait pendre encore moins qu'avec un dataset)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    Pour l'instant, je ne sais pas quelle taille fera le fichier XML car la version finale n'est pas encore écrite. Je me baserai là-dessus pour savoir à quel moment basculer sur le DataSet.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Points : 62
    Points
    62
    Par défaut
    A l'heure actuel saturer une mémoire vive est quand même assez rare (et sur un serveur j'en parle même pas ).

    J'irai dans le sens de Pol63: pourquoi ne pas utiliser un dictionnaire? Les nœuds primaire en clé et le reste en valeur.

    Le dictionnaire prend peu de place en mémoire et est très rapide d'accès, comble du bonheur, la valeur est libre (j'ai même utilisé un dictionnaire de dictionnaire de list...)
    Entre la culture des perles fines et ceux qui perlent l'inculture, un point commun domine : c'est le QI de l'huître !

  8. #8
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    Merci pour ces conseils.
    Je mets le développement de côté pendant un petit temps, j'ai un site web à finir de préparer mais dès que je m'y remets, je test tout ça.

Discussions similaires

  1. [XML]Question de conception
    Par nana1 dans le forum Persistance des données
    Réponses: 17
    Dernier message: 17/11/2005, 09h34
  2. [XML] Questions de syntaxe
    Par ghohm dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 03/11/2005, 12h08
  3. [Struts][struts-config.xml] question sur l element action
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/10/2004, 16h25
  4. :?: question d'optimisation!
    Par Stopher dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/06/2004, 17h15
  5. [C#] [SQLSERVER2000] Dataset et Xml
    Par farfadet dans le forum ASP.NET
    Réponses: 11
    Dernier message: 16/03/2004, 16h02

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