Bonjour,
J'ai une application qui manipule des fichiers XML. Pour connaitre sa performance, j'ai effectué le test suivant:
1) Premièrement, je parse mes documents et je ne fais rien.
2) Deuxièmement, je lance mon application
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 XMLStreamReader xmlsr = xmlif.createXMLStreamReader(inputStream); loop: while (true) { int eventType = xmlsr.next(); switch (eventType) { case XMLEvent.END_DOCUMENT: break loop; }
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 loop : while (true) { try { eventType = xmlsr.next(); } catch (XMLStreamException e) { throw new Error(e); } switch (eventType) { case XMLEvent.START_ELEMENT: doStartElement(xmlsr.getName().getLocalPart(), xmlsr.getNamespaceURI()) break; case XMLEvent.END_ELEMENT: doEndElement(xmlsr.getName().getLocalPart(), xmlsr.getNamespaceURI()) break; .... } }
Et là, surprise! Le second algorithme est plus rapide que le premier (environ 10% sur un test qui dure 15 minutes). Je ne trouve pas où est le biais dans ma mesure.
Merci de vote aide.
Partager