Je développe une application, qui appelle beaucoup de constructeur XmlSerializer avec un paramètre extraTypes. J'ai découvert, que chaque appel augmente la mémoire de l'application pour environ 100 Ko et 2 descripteurs (parfois plus). Exemple de code:XmlSerializer extraTypes fuite de mémoire
ce code mémoire application encrease pour 100KB et 2 gestionnaires par chaque appel
while (true)
{
Console.ReadLine();
new XmlSerializer(typeof (object), new Type[] {});
}
ce code mémoire application encrease pour 43024KB et gestionnaires 2004
for (var i = 0; i < 1000; i++)
{
new XmlSerializer(typeof (object), new Type[] {});
}
si juste siplest exemple de console application:
internal class Program
{
private static void Main(string[] args)
{
//this code encrease application memory for 43024KB and 2004 handlers
for (var i = 0; i < 1000; i++)
{
new XmlSerializer(typeof (object), new Type[] {});
}
Console.WriteLine("Finished. Press any key to continue...");
Console.ReadLine();
}
}
Est-ce un bug dans XmlSerializer ou im faire quelque chose de mal?
P.s. même avec le code optimize sur et une version validée
en double de [fuite de mémoire en utilisant StreamReader et XmlSerializer] (https://stackoverflow.com/questions/23897145/memory-leak-using-streamreader-and-xmlserializer) – dbc