没有属性和字段的类的缓存大小

时间:2010-09-28 17:07:28

标签: c# .net caching

您好
我想知道,当我缓存一个没有字段参数的类时,需要多少空间? 只有类的字段和属性消耗空间是真的吗? 如果是真的,当我创建一个具有此规范的类时,它是否只占用缓存中此类的指针? 请帮助我了解缓存在类元素的占用空间方面是如何工作的

1 个答案:

答案 0 :(得分:1)

“空”对象(var obj = new object();)在32位运行时中占用12个字节(我以前曾说过16个字节)。它在64位运行时中占用24个字节。

这是我用来测试它的程序。

        var objs = new List<object>(1000000);
        var memUsedStart = GC.GetTotalMemory(true);
        Console.WriteLine("Beginning memory usage = {0:N0}", memUsedStart);
        for (int i = 0; i < 1000000; ++i)
        {
            objs.Add(new object());
        }
        var memUsedEnd = GC.GetTotalMemory(true);
        Console.WriteLine("{0:N0} items in list", objs.Count);
        Console.WriteLine("Ending memory usage = {0:N0}", memUsedEnd);
        var memUsed = memUsedEnd - memUsedStart;
        Console.WriteLine("Difference = {0:N0}", memUsed);
        Console.WriteLine("Bytes per object = {0}", memUsed / 1000000);
        Console.ReadLine();