gpt4 book ai didi

.net - 内存中的 System.Collections.Generic.List 大小

转载 作者:行者123 更新时间:2023-12-01 05:13:24 24 4
gpt4 key购买 nike

只是想知道是否有人曾尝试确定内存中 System.Collections.Generic.List 的实际大小?

我目前正在使用 System.HttpRuntime.Cache 缓存一个这样的对象,这似乎运行良好,但我希望能够确定对我的服务器的实际影响。

using (System.IO.MemoryStream stream = new System.IO.MemoryStream(capacity)) 
{
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter().Serialize(stream, obj);
thisSerialized = stream.ToArray();
return thisSerialized.Length;
}

这适用于其他人,但不适用于我需要的。

最佳答案

列表的序列化大小将完全无关紧要。

A List<T>会有一点开销(两个 int s),和一个大小为 Capacity 的数组.

引用类型数组使用IntPtr.Size每个元素(4 或 8)字节的内存;值类型数组使用 Marshal.SizeOf(type)每个元素的内存字节数。
(数组也有一点开销)

列表内部(或列表中的结构)中的任何引用类型都将单独使用内存。

关于.net - 内存中的 System.Collections.Generic.List<T> 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5085477/

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