Problème de mémoire "out of memory" avec une applet
aLCHMEY
Messages postés6Date d'inscriptionmardi 29 juin 2004StatutMembreDernière intervention 2 août 2005
-
1 août 2005 à 11:34
aLCHMEY
Messages postés6Date d'inscriptionmardi 29 juin 2004StatutMembreDernière intervention 2 août 2005
-
2 août 2005 à 12:42
Bonjour,
Voici mon problème : Jai un problème de « out of
memory » avec une application (applet) qui traite de gros fichiers XML (6,
10 voir 15 méga octets), avec la version
non applet jai pu trouvé une solution à ce problème de mémoire en augmentant la
taille de la mémoire allouée à la machine virtuel java (java Xms128 Xmx128
nom_application).
Jai cherché dans lApi de java mais je nai pas trouvé
doption ou de class qui permet de configurer (afin daugmenter la mémoire) la
machine virtuelle du navigateur qui exécute lapplet.
Jaimerais savoir si vous avez des propositions ou des
remarques concernant mon problème
Merci davance.
[nabil]
A voir également:
Problème de mémoire "out of memory" avec une applet
aLCHMEY
Messages postés6Date d'inscriptionmardi 29 juin 2004StatutMembreDernière intervention 2 août 2005 2 août 2005 à 10:01
Salut :
Quand tu dis traite, c'est à dire ???
Alors le traitement consiste en lanalyse du fichier XML, en
gros le fichier XML peut représenté une base bibliographique par exemple, le
module permet de faire des recherches de type co-occurrence voici un exemple :
Supposant que nous avons la structure publication suivante,
on peut la représenter ainsi :
<nom>
Machin
</nom>
Truc
<titre>
toto
</titre>
Grâce au module récursif lutilisateur peut faire une
recherche de type (,) pour trouver tous les
ouvrages coécrit. (Doù la nécessité davoir la totalité de larbre en mémoire)
Ce nest quun aperçu du fonctionnement de ce module,
malheureusement je ne peux pas modifier le code source, car il a été développé
à part par un ingénieur, ma mission consiste à greffer une interface
graphique (applet) afin de lutiliser.
Tu dois utiliser DOM pour avoir de tels problèmes non ???
Est-ce que l'utilisation de SAX ne simplifierait pas le prob ???
Le parseur SAX est utilisé dans le module récursif.
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 2 août 2005 à 10:54
Salut,
en fait tu te sers de XML pour faire une base de données ...
Est-ce le plus efficace dans ton cas, pourquoi ne pas utiliser un SGBD
même embarquée (HSQLDB, MySQL, ...) parce que tu ne pourras pas régler
ce problème là efficacement surtout si ta base doit grossir par la
suite ...
aLCHMEY
Messages postés6Date d'inscriptionmardi 29 juin 2004StatutMembreDernière intervention 2 août 2005 2 août 2005 à 11:45
Effectivement, le choix dune base de données de type MySQL
ou autre peut résoudre le problème de lévolution de la taille de la base comme
tu l'as remarqué, mais le vrai problème (de fond) est que toute emploi dune base
de données de type (entité relation)empêche le moteur récursif de faire des recherches croisés (comme je
lai expliqué précédemment) :
Les données (fichier XML dans
notre cas) injectées dans le moteur pour analyse sont structurées de la manière
suivante :
Lorsque lutilisateur lance une recherche de co-occurrences,
par exemple « X x Y », le moteur commence par parcourir chaque
enregistrement (Record).
Une première vérification est effectuée pour regarder si
lenregistrement possède le type X et le type Y. Si ce nest pas le cas,
lenregistrement nest pas analysé et le moteur passe à lenregistrement
suivant.
Dans le cas contraire, lanalyse récursive de
lenregistrement commence. Pour ce faire, le moteur prend chaque terme du 1er type X auquel il va associer récursivement chaque terme du 2ème type
Y pour former une occurrence, etc...
A lheure actuelle unesolution seulementsoffre à
moi,revenir à la version application de
linterface graphique, mais dans ce cas je perds la facilité offerte par
lApplet par rapportà lutilisation du
programme (il suffit juste davoir un navigateur compatible java).
[nabil]
Vous n’avez pas trouvé la réponse que vous recherchez ?