我注意到C#中的原始类型实际上只是在
从本质上讲,这应该测试内存开销:
System
命名空间中定义的结构体的别名,例如ulong
是System.UInt64
的别名,它是struct
类型。由此产生的C#原始类型是否存在任何额外的空间和时间开销?比如说ulong
真的只占用8个字节的内存吗?从本质上讲,这应该测试内存开销:
using System;
class Program
{
static void Main()
{
long beforeAlloc = GC.GetTotalMemory(false);
ulong[] myArray = new ulong[System.Int32.MaxValue];
myArray[0] = 1;
long afterAlloc = GC.GetTotalMemory(false);
Console.WriteLine(((afterAlloc - beforeAlloc) / System.Int32.MaxValue).ToString());
}
}
但是文档明确指出,GC.GetTotalMemory()
方法仅检索当前被认为已分配的字节数,所以没有更复杂的内存分析器,是否有简单的方法来查找呢?