极致(Acme)-CG素材基地

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz

Unity Mono的foreach造成GC Alloc的BUG与实测

2018-8-14 10:39| 发布者: admin| 查看: 100| 评论: 0

摘要: Unity的Mono 2.0执行环境,使用foreach时有一个BUG,它会引起内存GC,导致一些额外的性能开销。那么它的真实性能表现是怎样?环境Unity 4.6.4 / Windows测试代码测试成绩结论foreach存在bug,会导致GC Alloc,并且效 ...

Unity的Mono 2.0执行环境,使用foreach时有一个BUG,它会引起内存GC,导致一些额外的性能开销。

那么它的真实性能表现是怎样?


环境

  • Unity 4.6.4 / Windows

测试代码




测试成绩




结论

  • foreach存在bug,会导致GC Alloc,并且效率低下;
  • 使用GetEnumerator代替,没有GC,并且速度快10倍!

对于性能执着的开发者,建议迭代操作中,List使用for,Dictionary使用GetEnumerator

PS:

Unity5.5后,这个BUG已经解决了,并且引入了C# 6.0!详见:

“Unity与Foreach”这章,终于要翻过去了


鲜花

握手

雷人

路过

鸡蛋

最新评论

QQ|Archiver|手机版|小黑屋|www.cgacme.com ( 蜀ICP备18003526号 )

GMT+8, 2021-2-27 20:52 , Processed in 0.518707 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部