2010-01-07 2 views
2

J'ai une petite application qui crée un document XML en utilisant XDocument. Cependant, après un certain temps, l'application utilise plus de RAM 1gb.Problème d'utilisation de la mémoire XDocument

Donc je me demandais s'il y avait de toute façon que XDocument utilise le disque à la place de la mémoire. Par exemple, en ouvrant un StreamWriter et enregistrez-le dans un fichier en déplacement.

Merci d'avance.

+0

Pourquoi construisez-vous cela? Que faites-vous avec une fois construit? – AnthonyWJones

+0

Informatif: J'ai chargé un xml de 1,4 Go dans XDocument et l'utilisation de la mémoire a grimpé jusqu'à 2,4 Go (il y avait environ 30% d'espace dans le fichier original). –

Répondre

1

En supposant que vous faites référence à l'.net XDocument, vous pouvez utiliser à la place un XmlWriter (tutorial). Le XmlWriter peut être attaché à n'importe quel flux que vous aimez en utilisant la méthode XmlWriter.Create(). Etes-vous sûr que votre document est assez volumineux pour consommer 1 Go de mémoire?

2

L'utilisation d'un outil de profilage de mémoire tel que ANTS Memory Profiler peut vous aider à découvrir quels objets restent en mémoire.

+0

En fait, c'est vraiment énorme et je ne m'en suis pas rendu compte. Je suppose que je vais devoir aller avec la solution de flux :) Merci. – mortenbpost

+0

En fait, je viens de vérifier et certains des fichiers xml ont une taille de plus de 300mb, donc je suppose que les classes x xml ont un peu de surcharge donc l'utilisation de la mémoire semble correcte. – mortenbpost

+2

Fichiers XML de 300 Mo - êtes-vous sûr que XML est le meilleur format pour ces données? –