大小细节

先说int的大小:32位上,第一位是1是负数,第一位是0是正数,

负数最小值可以用1000000...(31个0)来表示.但正值只能是01111...(31个1来表示)

所以最小的负数是 -2^31=-2147483648

最小的正数是 2^31=2147483648-1=2147483647

==============================================================

再研究一下.net object,每个object有一个overhead field,又由两部分构成:

  • type object pointer 在32位机器上,占32bit,就是4个byte
The type object pointer is a pointer to a type description of the object. 
This is used to find out what the actual type of an object is, for example needed to do virtual calls.
  • sync block index 占32bit,4byte   两者一共是8个bytes
The sync block index is an index into a table of synchronisation blocks.
it also used to generate object hashcode
 
CLR 分配额新对象内存的时候,就是在 newobjptr 指针指向的 heap 上分配,
不同于c 的内存分配,需要便利object linked list,看哪里有大的内存块,所以连续分配的obj,内存上可能是不连续的
CLR 是直接在newobjptr指针上分配,所以速度比较快,而且保证连续分配的对象,内存上是连续的。

================================================================




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值