Bonjour,

j'utilise Python 3.4.3 avec cElementTree pour parser en masse des centaines de milliers de XML qui sont sur mon disque dur puis les intégrer dans une BDD Oracle.

Les performances sont tout à fait acceptables (voire formidables) par contre elles sont TRES variables. La BDD n'est pas en cause, j'ai pointé les temps à chaque étape et ce qui varie (visiblement) c'est:
- l'ouverture d'un fichier : boucle dans UN répertoire avec os.walk
- son parsing (avec la fonction ET.parse),
- la récupération des données (avec des boucles ou des find, pas vu de réelle différence)
- et sa fermeture (naturellement réalisée avec un WITH)

La performance peut aller de 2300 xml/s à seulement 220 xml/s. Le point important c'est que je fais mes tests sur les mêmes XML à chaque fois, le même poste, la même BDD (mais de toutes façons cette partie là est stable), bref exactement la même configuration. A l'instant je viens d'avoir 2 runs à 3mn d'écart, le 1er à 220 xml/s et le 2e à 2300 xml/s.

Qu'est-ce qui, selon vous, pourrait provoquer ce changement de performances? Une utilisation particulière de la mémoire ? Je n'ai aucune saturation visible de la RAM ou des CPU.
Ma seule explication serait un problème d'accès disque, qui serait impacté par une activité Windows silencieuse et variable, sachant que le disque est un disque crypté Par TrueCrypt, ça peut jouer.

Merci beaucoup pour vos remarques, conseils, idées