为什么我的每个接口占用2mb RAM?

时间:2012-10-17 16:14:40

标签: c# memory interface

好的,我确实有一个关于在WinForms应用程序中实现接口的问题。基本上我有一个我建立的控件库。每个控件都定义了一个与主窗体交互的接口。

我一直在做的是创建一个属性处理程序,它是接口的类型,然后像这样做。

在控件上:

public interface ITest {
    void Test1();
    void Test2();
}

private ITest _testHandler;

public ITest TestHandler { 
    get { return _testHandler; }
    set { _testHandler = value; }
}

在主窗体上:

public MainForm : Form, MyControl.ITest { 

    public MainForm() { 
        InitializeComponent();
        MyTestControl.TestHandler = this;
    }

    // Implementing methods here...
}

界面工作正常。我很好奇为什么它为每个人占用了这么多公羊。我不认为接口应该真正影响性能。

1 个答案:

答案 0 :(得分:1)

接口不占用内存;数据呢。你实现的类(以及其他东西)是实际占用内存的东西。

我会寻找一个内存分析器,它可以帮助你缩小占用大量内存的内容。您可能会反复创建不必要的对象,并且可以通过工厂模式进行改进,以便缓存可以重复使用的对象。

Viausl Studio(我认为Premium和Ultimate版本)有一个性能向导,包括内存分析(在VS 2010和2012的分析菜单下)

我使用Ants Memory Profiler并喜欢它,但它不是免费的。然而,它确实有一个为期14天的免费试用版,可以让你超越驼峰。