在堆内存上使用值类型时是否有任何开销?

时间:2016-04-01 10:24:53

标签: .net memory-management

在指针,系统字段等堆上使用值类型时是否有任何开销?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

更具体地说拳击的开销是:

  • 内存在堆上分配
  • 初始化另外两个成员:类型对象指针,同步块索引
  • 将值类型字段复制到新分配的堆内存

拆箱开销是:

  • 获取盒装对象中的已装箱对象字段的地址
  • 将值从堆复制到基于堆栈的对象(实际上这不是取消装箱操作的一部分,但通常在取消装箱后进行)