0

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...
}

インターフェイスは正常に動作しています。なぜそれがそれぞれにそんなに多くのRAMを占有しているのか、私はただ興味があります. インターフェイスが実際にパフォーマンスに影響を与えるべきだとは思いません。

4

1 に答える 1

1

インターフェイスはメモリを占有しません。データはそうです。あなたは(とりわけ)実装クラスであり、実際にメモリを占有しているものです。

大量のメモリを占有しているものを絞り込むのに役立つメモリ プロファイラを探します。必要のないオブジェクトを何度も作成している可能性があり、再利用できるオブジェクトをキャッシュする Factory パターンで改善できます。

Viausl Studio (Premium および Ultimate バージョンだと思います) には、メモリ分析を含むパフォーマンス ウィザードがあります (VS 2010 および 2012 の [分析] メニューの下)。

私はAnts Memory Profilerを使用して気に入っていますが、無料ではありません。ただし、14日間の無料試用版があり、こぶを乗り越えることができます.

于 2012-10-17T18:07:03.333 に答える