Bonjour à tous,

Dans le cadre d'un projet, je dois réaliser une petite DLL pour l'écriture d'un fichier XML de logs.

J'ai déjà la DLL complète, cependant dans un soucis d'efficacité, j'ai commencé à tester les perfs ...

J'ai fait une boucle simple de 1000 itérations pour le chargement en XML d'un message court (une fois en mode message, une fois erreur).

Du type
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<logs>
    <log at="date" type="Message"> Ceci est un message</log>
    <log at="date" type="Erreur"> Ceci est une erreur </log>
</logs>

Pour écrire ces 1000 messages (500 de chaque) , je mets 12s (selon la config de l'ordi : Core2Duo 2.93Ghz avec 3Go de RAM). J'ai testé sur mon Core i5 je mets 2s.

Je voulais savoir s'il y avait un moyen d'optimiser un peu cela, sachant que j'utilise un constructeur static pour limiter les accès disque au début (juste de la vérification de dossier et de fichier) , et que j'utilise un XDocument et un XElement pour l'écriture (avec un XmlWriter).


Merci de me proposer vos éventuelles idées pour que je puisse réduire ce temps , car je trouve que 12s pour une écriture de messages est assez élevée (d'autant que ce temps augmente à 30s si je retente mes tests avec un fichier déjà créé avec 1000 messages ...).

Merci d'avance

Facultatif :
J'ai cru comprendre qu'il pourrait être utile de passer par un FileStream (puis StreamWriter, XmlWriter) pour utiliser un buffer et flusher mes données par paquet.