gpt4 book ai didi

.net - 找出 .NET 对象的大小

转载 作者:行者123 更新时间:2023-12-03 05:56:00 29 4
gpt4 key购买 nike

我试图找出我的对象占用了多少内存来查看有多少对象最终出现在 Large Object Heap 上。 (超过 85,000 字节)。

是否像为每个对象添加 4(表示 int)、添加 8(表示 long)、添加 4(或 8,如果是 64 位)表示任何引用类型等一样简单,还是有方法、属性等的开销? .?

最佳答案

不要忘记,实际对象的大小不包括它引用的任何对象的大小。

唯一可能最终出现在大型对象堆上的东西是数组和字符串 - 其他对象本身往往相对较小。即使一个对象具有(比如说)10 个引用类型变量(在 x86 上每个 4 字节)和 10 个 GUID(每个 16 字节)也只会占用大约 208 个字节(类型引用和同步块(synchronized block)有一些开销)。

同样,在考虑数组的大小时,不要忘记,如果元素类型是引用类型,那么只有引用的大小才算作数组本身。换句话说,即使你有一个包含 20,000 个元素的数组,即使它引用了更多的数据,数组对象本身的大小也只会超过 80K(在 x86 上)。

关于.net - 找出 .NET 对象的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/324053/

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