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.
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;
	}
2) Deuxièmement, je lance mon application
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.