【发布时间】:2016-08-11 09:25:20
【问题描述】:
我正在开发一些应用程序,它使用 extraTypes 参数调用很多 XmlSerializer 构造函数。我发现,每次调用都会增加大约 100KB 的应用程序内存和 2 个描述符(有时更多)。 代码示例:
此代码为每次调用增加 100KB 的应用程序内存和 2 个处理程序
while (true)
{
Console.ReadLine();
new XmlSerializer(typeof (object), new Type[] {});
}
此代码为 43024KB 和 2004 处理程序增加了应用程序内存
for (var i = 0; i < 1000; i++)
{
new XmlSerializer(typeof (object), new Type[] {});
}
所以只是控制台应用程序的最简单示例:
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();
}
}
这是 XmlSerializer 中的错误还是我做错了什么?
附:与优化代码和发布版本相同
【问题讨论】:
标签: c# .net memory-leaks xmlserializer