Bonjour,
svp est ce qu il y a une fonction avec DOM, qui permet le dechargement d un document xml du memoire, sachant que j ai utilise DOMParser pour charger un doc xml.
Merci.
Bonjour,
svp est ce qu il y a une fonction avec DOM, qui permet le dechargement d un document xml du memoire, sachant que j ai utilise DOMParser pour charger un doc xml.
Merci.
Je ne suis pas sure qu'il y ai une solution plus rapide a ton probleme vu le nombre de fichier XML qui tu dois exploiter. De plus le java n'etant pas le langage de programmation le plus rapide du monde ca n'arrange pas les choses.
En ce qui concerne le ramasse miette je ne pense pas que tu puisses internevir dessus. Je crois qu'il le fais automatiquement mais on ne sais pas quand. Si ca se trouve ca se fait quand il estime que tu as besoin de plus de memoire pour la suite de ton programme.
Normalement en vidant ton vecteur tu devrait recuperer l'espace qui etait occupee avant.
Tu peux forcer le garbage collector (ramasse miette) avec System.gc(); mais ca ne changera rien...
Tu as beaucoup de fichiers à parser. Le parsing ne serait pas la cause ? Auquel cas, tu peux utiliser une grammaire (JFlex par exemple) qui sont faites pour le traitement de gros fichiers (et nombreux)
Si tu ne veux pas, tu fais ton traitement directement au lieu de stocker tes infos dans un vector pour ensuite les réécrires dans un fichier...
Salut, tu devrais utiliser un outil de monitoring (comme Profiler pour NetBeans) pour voir si tes arbres DOM sont bien supprimés de la mémoire.
Attention car si tu crées une référence à un noeud dans l'arbre, t'auras beau mettre ton arbre à null, il sera pas supprimé de la mémoire. Ton problème vient peut-être de là.
Autre soluce : appels à System.gc() avec le GC en mode synchone mais seulement à des endroits stratégiques car cela ralentit le thread de ton appli.
D'ailleurs c'est bizzare l'option -noasyncgc de la JVM est soit disant inutile pour le JRE 1.5 alors que j'ai vu des différences avec et sans. Si quelqu'un a plus d'infos, je suis preneur...
A+
Je ne répondrai à aucune question technique par MP.
Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
Enfin, quand une solution a été trouvée à votre problème pensez au tag :resolu:
Cours Dvp : http://ydisanto.developpez.com
Blog : http://yann-disanto.blogspot.com/
Page perso : http://yann-disanto.fr
Salut,
je viens de trouver une solution plus propre qui consiste à supprimer le noeud document avant de mettre l'arbre DOM à null.
domTree.removeChild(domTree.getDocumentElement());
Apparemment ca facilite le travail du Garbage Collector. J'imagine qu'il n'a plus besoin de parcourir l'arbre entier et vérifier si chaque noeud a encore une référence externe.
[Edit]L'appel explicite au GC est finalement pas conseillé. Désolé pour le conseil bidon[/Edit]
Bye
Il serait peut-être intéressant d'utiliser les SoftReference & co.
Je ne répondrai à aucune question technique par MP.
Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
Enfin, quand une solution a été trouvée à votre problème pensez au tag :resolu:
Cours Dvp : http://ydisanto.developpez.com
Blog : http://yann-disanto.blogspot.com/
Page perso : http://yann-disanto.fr
Partager