gpt4 book ai didi

c# - 确定变量使用的字节数

转载 作者:太空狗 更新时间:2023-10-29 21:30:32 24 4
gpt4 key购买 nike

我有以下数组:

byte[][] A = new byte[256][];

这个数组的每个元素都引用另一个数组。

A[n] = new byte[256];

但是,大多数元素引用同一个数组。事实上,数组 A 只引用了两个或三个唯一的数组。

有没有一种简单的方法可以确定整个事物使用了多少内存?

最佳答案

如果您的问题是找出唯一一维数组的数量,您可以这样做:

A.Distinct().Count()

这是应该的,因为默认情况下数组相等适用于引用相等。

但也许您正在寻找:

A.Distinct().Sum(oneDimArray => oneDimArray.Length) * sizeof(byte)

当然,“变量使用的字节数”是一个不太精确的术语。特别是,上面的表达式没有考虑变量 A 的存储、交错数组中的引用、开销、对齐等。

编辑:正如 Rob 指出的那样,如果交错数组可以包含它们,您可能需要过滤掉 null 引用。

您可以使用(不安全 上下文)估算在交错数组中存储引用的成本:

A.Length * sizeof(IntPtr) 

关于c# - 确定变量使用的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4871881/

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