XmlDocument + memoire insuffisante

cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 - 15 sept. 2008 à 12:38
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 - 15 sept. 2008 à 14:11
Bonjour à tous,

Je rencontre un souci pour générer un fichier XML au boulot à l'aide du composant XmlDocument.

Cela fonctionne quand il n'y a pas trop de données, mais parfois, je récupère énormément d'enregistrements dans la base au point que 2 Go de ram sont bouffés par mon application. Et arrivé à un certain stade, j'obtiens le message d'erreur : "Memoire insuffisante".

Je souhaiterai donc enregistrer sur le disque plusieurs fois au cours de la génération XML les données afin d'utiliser moins de RAM mais je ne sais pas comment m'y prendre !

Quelqu'un pourrait m'aider ?

3 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
15 sept. 2008 à 13:28
Bonjour

Il faut savoir que le XMLDocument crée une réprésentation en mémoire du fichier XML (par l'appel de la fonction load), c'est à dire que la taille utilisée peut être beaucoup plus grande que celle nécessaire pour stocker la totalité du fichier en mémoire. Pour cette raison, il est préférable de ne pas utiliser ce composant pour des fichiers XML de très grande taille.

Cordialement. <hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 7
15 sept. 2008 à 13:52
Que puis-je utiliser d'autre alors ?
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
15 sept. 2008 à 14:11
Tu peux regarder, par exemple, du côté de XMLReader, XMLWriter (pas de chargement de l'ensemble du fichier XML en mémoire) Il te faudra alors revoir la façon de gérer tes XML...

P.S. Il existe de nombreux parser XML pour Delphi, certains gratuits, d'autres non (tout dépend de ton budget et niveau) facilement trouvable sous Google.

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
Rejoignez-nous