cs_Jordan59
Messages postés174Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention 9 avril 2014
-
15 sept. 2008 à 12:38
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDerniè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 !
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 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
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 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