我想知道一个己经实例化并己赋值的实体类占用内存情况,使用System.Runtime.InteropServices.Marshal.SizeOf(对象名)不好使,请高人指点

解决方案 »

  1.   

    无法准确的知道,也无需知道。C#中类的字段排列,字节对齐都是你无法获知的。CLR会做这些事。
      

  2.   

    private static final Runtime s_runtime =   
      Runtime.getRuntime ();
    private static long usedMemory ()
        {
          return s_runtime.totalMemory () - 
           s_runtime.freeMemory ();
           }
    private static void runGC () throws Exception
     {
    long usedMem1 = usedMemory (), usedMem2 = Long.MAX_value;
    for (int i = 0; (usedMem1 < usedMem2) && (i < 500); ++ i)
            {
                s_runtime.runFinalization ();
                s_runtime.gc ();
                Thread.currentThread ().yield ();
                usedMem2 = usedMem1;
                usedMem1 = usedMemory ();
             }
         }