gpt4 book ai didi

c# - int 数组使用的内存与只有一个 int 的结构数组使用的内存是等价的吗?

转载 作者:太空狗 更新时间:2023-10-29 21:50:03 27 4
gpt4 key购买 nike

考虑下一个结构...

struct Cell
{
int Value;
}

和下一个矩阵定义

var MatrixOfInts = new int[1000,1000];
var MatrixOfCells = new Cell[1000,1000];

哪一个矩阵会占用更少的内存空间?或者它们是等价的(一个字节一个字节)?

最佳答案

两者大小相同,因为结构被视为任何其他值类型并在堆中就地分配。

long startMemorySize2 = GC.GetTotalMemory(true);
var MatrixOfCells = new Cell[1000, 1000];
long matrixOfCellSize = GC.GetTotalMemory(true);

long startMemorySize = GC.GetTotalMemory(true);
var MatrixOfInts = new int[1000, 1000];
long matrixOfIntSize = GC.GetTotalMemory(true);

Console.WriteLine("Int Matrix Size:{0}. Cell Matrix Size:{1}",
matrixOfIntSize - startMemorySize, matrixOfCellSize - startMemorySize2);

这是 Jeffery Richter 关于数组分配方式的一些有趣读物 http://msdn.microsoft.com/en-us/magazine/cc301755.aspx

关于c# - int 数组使用的内存与只有一个 int 的结构数组使用的内存是等价的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26749654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com