extraTypes parametr을 사용하여 XmlSerializer 생성자를 많이 호출하는 일부 응용 프로그램을 개발하고 있습니다. 나는 각각의 호출이 약 100KB와 2 개의 디스크립터 (때로는 더 많은 것)를위한 애플리케이션 메모리를 포함한다는 것을 알아 냈다. 코드 예제 : 각 호출XmlSerializer extraTypes memory leak
while (true)
{
Console.ReadLine();
new XmlSerializer(typeof (object), new Type[] {});
}
이 코드 encrease 응용 프로그램 43,024킬로바이트 메모리 2004 핸들러
for (var i = 0; i < 1000; i++)
{
new XmlSerializer(typeof (object), new Type[] {});
}
의, 그래서 그냥 siplest 예를 당
1백킬로바이트이 코드 encrease 응용 프로그램 메모리와 2 핸들러 콘솔 애플리케이션 :
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 또는 im에서 버그가 발생합니까?
p.s.
하는 XmlSerializer가 생성) 아니, 그것은 기능입니다, 버그가 아닙니다 : 최적화에 코드 및 릴리스
이
StreamReader 및 XmlSerializer를 사용하여 [메모리 누수]가 중복됩니다. (https://stackoverflow.com/questions/23897145/memory-leak-using-streamreader-and-xmlserializer) – dbc