IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'�change (XML, JSON...) Java Discussion :

Gestion "gros fichiers" [JDOM]


Sujet :

Format d'�change (XML, JSON...) Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 27
    Par d�faut Gestion "gros fichiers"
    Bonjour,

    Je suis devant un "l�ger" probl�me...

    J'ai propos� plusieurs m�thodes pour transformer du XML -> format propri�taire (du texte).

    Soit utilisation XSL soit directement en java...

    En terme de rapidit� XSL est bcp plus lent (du simple au double) mais en therme de m�moire... rien � faire... pour un document de 40Mo ca tombe out of memory (j'utilise JDOM).

    Voici une des m�thodes proposer :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import java.io.IOException;
     
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
     
    import org.xml.sax.SAXException;
     
    public class TestCharge4 {
    	public static void main(String[] args)
    		throws
    			TransformerException,
    			TransformerConfigurationException,
    			SAXException,
    			IOException {
     
    		TransformerFactory tFactory = TransformerFactory.newInstance();
    		Transformer transformer =
    			tFactory.newTransformer(new StreamSource("test.xsl"));
     
    		transformer.transform(
    			new StreamSource("test.xml"),
    			new StreamResult("TestCharge4.txt"));
    	}
    }
    Des suggestions ?

    J'ai tent� d'augmenter la JVM mais toujours plant�...

    Qui arrive � g�rer de "gros" document ??

    Haaz

  2. #2
    Membre �clair� Avatar de philemon_siclone
    Inscrit en
    Septembre 2003
    Messages
    67
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 67
    Par d�faut
    Je me suis pos� exactement la m�me question pour l'appli que je suis en train de developper et la seule solution que j'ai trouv�e c'est d'utiliser ce bon vieux SAX (bon, OK, c'est pas l'id�e du si�cle... ).

    ++

  3. #3
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 27
    Par d�faut
    C'est ce que je suis en trian de faire mais comment tu fait quand tu veux r�cup�rer des infos dans les noeuds fr�res ou p�res ??? � part avoir des variables masi bon... pas super pour maintenir le code...

    Haaz

  4. #4
    Membre �clair� Avatar de philemon_siclone
    Inscrit en
    Septembre 2003
    Messages
    67
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 67
    Par d�faut
    Je pense (j'esp�re) que ce que j'ai fait �tait un peu plus propre que simplement mettre les infos d�j� rencontr�es dans des variables. Mais �a peut �tre tout � fait valable si les traitements ne sont pas trop complexes. De toute fa�on, on en sort pas, il te faut un moyen de stocker l'�tat courant du parsage (avec eventuellement un historique des elements d�j� rencontr�s (mais pas tous, �videmment, sinon �a revient � reprogrammer DOM )).

    De mon cot� j'avais une classe EtatCourant et quelques classes pour les elements parents. Mais peut-�tre que dans ton cas une solution plus l�g�re est pr�f�rable (je ne sais pas).

    ++

    PS : d�sol�, j'ai l'impression de sortir que des �vidences, et de ne pas trop t'aider

  5. #5
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 27
    Par d�faut
    Sisisisi disons que j'�tait un peu content de ce que j'avias fait et j'ai du mal � me retourner verts du Sax

    Merci de ton aide

    Haaz

  6. #6
    Membre �clair� Avatar de philemon_siclone
    Inscrit en
    Septembre 2003
    Messages
    67
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 67
    Par d�faut
    Sinon, t'as entendu parler d'un truc qui s'appelle "deferredDom"? Si j'ai bien compris (je n'ai lu qu'un cours paragraphe la-dessus) �a permettrait de ne pas mettre l'arbre DOM enti�rement en m�moire mais de le charger "� la demande" (i.e. seule une partie de l'arbre est en m�moire).

  7. #7
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 27
    Par d�faut
    Non mais d�s que j'ai fini de refaire tout mon boulot avec SAX (quelle prise de tete ... tu as toi aussi 50 .compareTo dans ton code pour t'en sortir ????) j'irais voir ca !!!!

    Pourquoi on a pas des PCs avec 500 milliard de m�moire ??? comme ca hop DOM et voila...

    Haaz

    EDIT : bon a 40 Mo avec Sax ca passe... je vais tenter de voir si j'arrive � passer quand meme avec JDOM...

  8. #8
    Expert confirm�
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 696
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 696
    Par d�faut
    oula qu'est ce que tu fait avec un fichier de 40 Mo � transformer ? c'est pas courant !

  9. #9
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 27
    Par d�faut
    Bah 40 Mo c'est pour le test ... sur serveur ca sera plus gros je crois...

    Gesion de fichier XML dans l'administration mais on n'est pas encore sur des tailles de fichiers.

    Haaz

  10. #10
    Membre averti
    Inscrit en
    Octobre 2002
    Messages
    29
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 29
    Par d�faut
    Voila que je suis inquiet...
    Je risque d'avoir a verifier la grammaire sur un fichier de plus d'un Giga...

    Ne me dites pas que je suis mal

  11. #11
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 27
    Par d�faut
    Tu raye tout ce qui approche de DOM de ton vocabulaire et tu te plonges dans SAX & compagnie

    Tient nous au courant j'ai les memes probl�matiques donc si on trouve une solution ca aidera au moins 2 personnes

    Haaz

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. gestion de gros fichiers en C++
    Par buzzkaido dans le forum C++
    R�ponses: 6
    Dernier message: 07/08/2012, 12h16
  2. Gestion de gros fichiers
    Par bpy1401 dans le forum Android
    R�ponses: 10
    Dernier message: 03/07/2012, 13h40
  3. Gestion des (gros) fichiers
    Par schneed dans le forum C++Builder
    R�ponses: 1
    Dernier message: 23/02/2009, 20h05
  4. [Composants texte] Gestion de gros fichiers
    Par sozie9372 dans le forum Interfaces Graphiques en Java
    R�ponses: 8
    Dernier message: 22/05/2006, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo