2017-02-10 7 views
-2

特定のタイプに対して作成されたインスタンスの数と各インスタンスが占有したメモリの量を確認する方法を教えてください。例を挙げてください。コメントで示唆したようにC#でタイプに対して作成されたインスタンスの数を確認する方法は?

+0

クラスのサイズを見つけるために、あなたはこれをusing System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential)] public class MyClass { public int MyField; public int MyField; } 

そして使用する必要がありますか? –

+0

これはあなたが作成したクラスですか? –

+0

クラスのインスタンス数を数える最も良い方法は、クラスに '静的' 'int'カウンタを保持し、それをコンストラクタで1ずつインクリメントし、disposeメソッドで1ずつ減らすことです。そのID可能なインターフェイスが実装されていることを確認してください – ViVi

答えて

1

私はこれが唯一のあなたが例えばSystem.Stringのインスタンスの数を見つけることができません。このように、独自のクラスのために動作します

public class Myclass 
{ 
    private static long Count; 

    public Myclass() 
    { 
     Interlocked.Increment(ref Count); 
    } 
} 

例を追加します。プログラム

int sizeInBytes = Marshal.SizeOf(typeof(MyClass)); //return 8 

Also you have here a list with size of int, byte, etc.

+0

ありがとうMoshe私はそれが私を助けるそれを試してみました! –

関連する問題