首页 新闻 会员 周边

请问.NET托管堆中的最小对象为什么是12个字节

0
[已解决问题] 解决于 2012-07-07 18:54

如题,.NET托管堆中的最小对象为什么是12个字节而不是8个字节。

对象头(4Byte) + 方法表(4Byte)= 8Byte.

??12Byte, 注:该对象没有任何的成员。

例如: class A{}

TonyWang的主页 TonyWang | 初学一级 | 园豆:199
提问于:2012-07-06 17:10
< >
分享
最佳答案
0
奖励园豆:5
artwl | 专家六级 |园豆:16736 | 2012-07-06 17:26

非常感谢您提供的链接,正解!

TonyWang | 园豆:199 (初学一级) | 2012-07-07 18:54
其他回答(1)
0

类型指针+同步索引块+实例数据,最小对象应该是8byte。12byte这个结论从哪儿看来的?

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-07-06 17:35

通过WinDbg观察到得,如图。

支持(0) 反对(0) TonyWang | 园豆:199 (初学一级) | 2012-07-07 18:51

@TonyWang: 这里面有个很神奇的东西,你把你的空class,改成只包含一个int字段的class,它还是只占12byte.

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-07-08 00:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册