加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 数组调整大小是否调用GC?

发布时间:2020-12-15 04:22:27 所属栏目:百科 来源:网络整理
导读:我研究了Array.Resize()的实现,并注意到创建并返回了一个新的数组.我的目标是在游戏过程中进行零内存分配,所以我需要避免创建任何新的参考类型.调整数组的大小会触发上一个数组的垃圾收集器吗?我正在创建自己的2D数组调整器,但它基本上与.NET Resize()方法
我研究了Array.Resize()的实现,并注意到创建并返回了一个新的数组.我的目标是在游戏过程中进行零内存分配,所以我需要避免创建任何新的参考类型.调整数组的大小会触发上一个数组的垃圾收集器吗?我正在创建自己的2D数组调整器,但它基本上与.NET Resize()方法相同.

如果新的数组小于上一个数组,但是多余的对象已经被放回到一个通用的对象池中,这是否会调用GC?

数组将不断地在我的游戏循环中创建,所以我需要尝试尽可能高效.我正在尝试创建一个数组池,所以不需要继续创建它们的游戏.但是,如果resize方法执行相同的操作,那么不仅仅是实例化一个新的数组而不是使用该池,所以没有任何意义.

谢谢您的帮助

解决方法

Array.Resize实际上并没有改变原来的数组 – 任何仍然有引用它的人都可以像以前一样使用它.因此,无法进行优化.坦白说,这是一个非常命名的方法,IMO

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读