'foreach'在"现代"统一中是否仍然不好(> = 5.4.x)?

slu*_*pet 8 unity-game-engine

从历史上看,Unity3D中的一个禁忌构造是使用c#foreach块,因为循环的每次迭代都会不经意地消耗几个字节的数据.

好奇,如果在现代版本中仍然如此?

我的谷歌搜索和(非常基本的)测试得出了非决定性的结果,我想在这里挖掘别人的知识,而不是自己深入低级别的基准测试.:-)

最近是否有人为了确定是否仍有必要避免在Unity3D中使用foreach来解决这个问题?

Pro*_*mer 10

,foreach在"现代"统一中不再是坏事,但修复尚未完全释放.

它首先在7月初的特殊版本Unity Patch 5.3.5p8修复,你可以从这里获得.这是一个特殊版本,您必须获得该修复.

现在,Unity 在Unity 5.5 beta版本上将他们的编译器升级到Mono 4.4,这还不是最终版本.它解决了这个问题.一旦这个版本在未来几个月发布,内存分配将成为过去.您仍然可以下载用于测试目的,但不发布带有beta版本的游戏.foreachforeach

脚本:将C#编译器升级到Mono 4.4.新编译器仍然以C#4和.Net 3.5为目标,但提供了更好的性能和许多错误修复.

它现在已修复但修复程序仍处于测试模式.