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

XML/XSL et SOAP Discussion :

Problème de perf TinyXPath


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut Problème de perf TinyXPath
    Bonjour,

    j'utilise TinyXPath pour lire des fichiers XML en faisant des requêtes XPath et j'ai des soucis de performance.

    Mon fichier XML fait 1,4 Mo, et son ouverture est quasi instantanée. Par contre, mes fonctions de lecture qui vont enregistrer les données via des requêtes XPath sont très longues. Il me faut à peu près 45 minutes sur une bonne machine pour tout enregistrer.

    Est-ce normal?
    Sinon, comment puis-je gagner en performances?
    Dois-je changer de librairie, et si oui, laquelle me conseillez vous (avec interface XPath)?

    Merci pour votre aide.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Hello,
    Je connais pas cette librairie, mais faut peut être déjà commencer par voir si les XPATH sont optimum ou non.
    Et tu parles d'enregistrement dans les 45 minutes, ce qui est hors XPATH.

    Peut être que tu peux déconnecter la lecture de l'enregistrement pour tester indépendamment les perf des 2.

    Et oui, 45 minutes c'est bcp bcp trop.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    En fait, l'ouverture du fichier XML et la création de l'arbre DOM correspondant sont quasiment instantanés pour le fichier de 1,4 Mo.

    Ce qui prend du temps c'est de faire une requête XPath pour accéder à un attribut. Par exemple quand je veux accéder à 10 attributs d'une même balise, je fais 10 requêtes XPath du style /Balise1/Balise2/Balise3[indice]/@monAttribut. Du coup, il va parcourir 10 fois l'arbre de la racine jusqu'à l'attribut en question.

    J'ai testé en parcourant le graphe DOM moi même à la main et de cette manière, je peux par exemple sauver le noeud correspondant à la balise3 et récupérer mes 10 attributs sans tout parcourir. Résultat, je parcours le fichier en quelques secondes.

    Mon problème est que pour généraliser l'utilisation de TinyXML, je ne peux pas me permettre de me promener manuellement sur le graphe, il faut que j'utilise XPath.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Franchement, je ne sais pas si c'est normal. Bien sûr, réévaluer le même début d'expression coûte plus cher que ne l'évaluer qu'une fois, mais je ne sais pas si c'est normal que ça prenne autant de temps quand même.

    Ce que tu peux faire, c'est un xPath vers le nœud dont tu veux récupérer les attributs, puis en lire les attributs manuellement (ou par un xPath prenant cet élément comme base.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Tes 45 minutes c'est pour combien d'évaluation XPATH?
    Ca me parait complétement démesuré et ça vaut peut être le coup de faire un bench qui évalue quelques milliers de XPATH sur ton fichier entre Xalan, saxon et ta librairie.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Je ne connais pas le nombre exact de requête XPath, à vu de nez je dirais dans les 50 000.

Discussions similaires

  1. Problème de perf sous Tomcat 5.5
    Par gamodio dans le forum Tomcat et TomEE
    Réponses: 14
    Dernier message: 18/07/2006, 11h48
  2. [VBA-E] Problème de perf'
    Par MatMeuh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/07/2006, 16h22
  3. Réponses: 11
    Dernier message: 19/06/2006, 16h54
  4. problèmes de perfs IE6/Firefox
    Par fredoche dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/08/2005, 17h44
  5. Problème de perfs Sous requetes IN
    Par ias83 dans le forum SQL
    Réponses: 4
    Dernier message: 15/06/2005, 12h39

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