我有一个长时间运行的应用程序,由于内存泄漏一致失败。是否引用静态属性导致内存泄漏
我怀疑我使用静态属性可能是原因。下面是我今天的例子:
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.Object1
属性)的ShortLived
其参考StaticReferences.Fixed1
实例得到妥善收集垃圾一旦超出范围?
是什么让你觉得有内存泄漏? –
这是一个控制台应用程序,它运行需要几个小时完成的过程。它会因内存不足异常而失败。我通过Jetbrains DotMemory运行它。非托管内存空间不断增长。托管memorý是稳定的.. –
@JakobGade你的程序做什么需要非托管内存?该部分是由您还是通过第三方组件实施的?非托管内存如何处理? – xxbbcc