log4net est devenu très lent avec les informations de localisation de l’appelant après la mise à jour de Windows 10 Fall Creators (1709)

Je sais que la documentation de log4net indique que la journalisation des informations sur l’emplacement de l’appelant peut être très lente et ne doit pas être utilisée à moins que les performances du logiciel ne soient pas affectées.

Et jusqu’à la mise à jour de Windows 10 Fall Creators, c’était le cas. Voici un petit exemple de projet.

app.config

   
<!---->

Program.cs

 using System; using System.Diagnostics; using log4net; namespace Log4Net.CSharp { class Program { private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); static void Main(ssortingng[] args) { LoggingTest(1000); Console.ReadKey(); } private static void LoggingTest(int iterations) { Stopwatch sw = Stopwatch.StartNew(); for (int i = 0; i < iterations; i++) { Log.Info("Some info logging."); } Console.WriteLine($"Logging of {iterations} iterations took: {sw.ElapsedMilliseconds} ms."); } } } 

Après la mise à jour de Windows (1709), les performances avec des informations sur l’emplacement de l’appelant telles que% C% M% L sont environ 100 fois moins bonnes que sans. Le problème est certainement lié à la mise à jour car après une restauration, les performances sont revenues à la normale.

Résultats avant la mise à jour de Windows (1709)

sans% C% M% L: La journalisation de 1000 itérations a pris: 18 ms.
w% C% M% L: La journalisation de 1000 itérations a pris: 81 ms.

Résultats après la mise à jour de Windows (1709)

sans% C% M% L: La journalisation de 1000 itérations a pris: 14 ms.
w% C% M% L: La journalisation de 1000 itérations a pris: 1502 ms.

Quelqu’un peut-il confirmer ce problème ou avoir une idée de ce qui se passe?

Je suis reconnaissant pour tout conseil sur la façon de déboguer / résoudre le problème. Merci d’avance!

Microsoft a mis à jour l’article mentionné il y a quelques jours ( https://support.microsoft.com/en-us/help/4057154/performance-of-system-diagnostics-stackframe-degrades-in-windows-10-17 ) et Comme le dit Jeeze dans un commentaire, la nouvelle mise à jour ( https://support.microsoft.com/en-us/help/4058258 ) résout le problème indépendamment du .NET Framework utilisé.