У меня есть долговременное приложение, которое последовательно выходит из строя из-за утечки памяти.Связаны ли ссылки со статическими свойствами с утечками памяти
Я подозреваю, что причиной этого может быть использование статических свойств. Вот пример того, что я сегодня:
public class StaticReferences
{
public static readonly object Fixed1 = new object();
}
public class ShortLived
{
public object Object1;
}
public class Doer // This class is instantiated once
{
public void DoStuff() // This method is called over and over again.
{
var shortLived = new ShortLived()
{
Object1 = StaticReferences.Fixed1
};
}
}
Будет ли экземпляр ShortLived
с его ссылкой на StaticReferences.Fixed1
(через ShortLived.Object1
собственности) получить правильно мусора, как только он выходит за рамки?
Что заставляет вас думать, что есть утечка памяти? –
Это консольное приложение, которое запускает процесс, который занимает пару часов. Он выходит из строя с исключением из памяти. Я провел его через Jetbrains DotMemory. Неуправляемое пространство памяти продолжает расти. Управляемый памятник является стабильным. –
@JakobGade Что делает ваша программа, которая требует неуправляемой памяти? Эта часть реализована вами или сторонним компонентом? Как обрабатывается неуправляемая память? – xxbbcc