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

C# Discussion :

Xml : Serialisation d'un grand nombre de données


Sujet :

C#

  1. #1
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut Xml : Serialisation d'un grand nombre de données
    Salut à tous,

    J'ai mis en place une sauvegarde de données en utilisant la serialisation xml.
    Parmis ces données à sauvegarder, j'ai une propriété Image de type byte[].
    Une image peut avoir une largeur maximale de 450px.

    En effectuant la serialisation de la classe contenant cette propriété, j'obtiens un fichier xml pesant 88Mo (avec environ 900 images).

    La première approche que j'avais choisi afin de ne pas sauvegarder les images en xml (et donc de réduire le poids du fichier) était de stocker chaque image dans un dossier. La propriété Image recevait le chemin pointant vers ce dossier.

    Mais mon souhait, c'est d'avoir un seul et unique fichier contenant ces données (un peu à la manière d'un fichier word).

    Selon vous, quelle est la meilleure approche pour sauvegarder ces données ?

    Merci pour vos réponses.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    L'approche XML me semble pas si mal... l'inconvénient c'est que les images prennent un peu plus de place que nécessaire : l'encodage en base64 prend environ 1.3 fois plus de place que le binaire brut. Je ne pense pas qu'il y ait grand chose à gagner avec la compression : les formats d'image les plus fréquents sont déjà compressés.

    Si tu veux économiser l'espace supplémentaire dû à l'encodage en base64, tu pourrais utiliser une approche comme Office, OpenOffice, les eBooks et pas mal d'autres formats : une archive ZIP qui contient le XML et les fichiers images. Le XML lui-même contient juste le chemin des fichiers images dans l'archive, pas les données de l'image.

  3. #3
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut
    Merci pour ta réponse.

    Je me suis penché sur ta solution. J'ai utilisé DotNetZip pour zipper mon fichier xml et les images.
    Donc, dans le fichier xml est stocké le chemin vers l'image qui se trouve dans l'archive (pictures/NomImage.jpg).

    Au niveau du traitement:

    Chargement des données :
    - désérialisation xml
    - fichier image (.jpg) => byte[]

    Sauvegarde des données :
    - sérialisation xml
    - byte[] -> fichier image (.jpg)

    En gardant les mêmes données, j'avais avant un fichier xml pesant 88Mo et maintenant j'ai un fichier zip pesant 63Mo (décompressé : xml => 444ko et le dossier pictures => 62,6Mo).

    Le gain de place n'est pas négligeable.

    Merci à toi

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

Discussions similaires

  1. Stratégie pour afficher un grand nombre de données
    Par oneagaindoguys dans le forum Général Java
    Réponses: 50
    Dernier message: 09/12/2010, 10h22
  2. Pb pour lire un grand nombre de données
    Par seb111983 dans le forum JDBC
    Réponses: 12
    Dernier message: 28/09/2010, 21h57
  3. Réponses: 2
    Dernier message: 19/10/2009, 20h51
  4. Réponses: 18
    Dernier message: 06/07/2009, 16h01
  5. transfert excel d'un grand nombre de données
    Par djerbafr dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/08/2008, 12h05

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