看到很多项目中协程泛滥,大量的使用协程替代能用update完成的功能,于是有点不解,首先确实很多地方协程比update要方便很多,但是其性能差距到底如何,理论上来讲,既然update是内置的函数,那么必然是比需要进行额外处理的协程来得快的,那么到底是否快,快多少这边进行了简单的测试,有什么不同的测试意见可以提出来我一并进行测试。
1:创建100,000个空GameObject,一个有Update,另一个在start中开启协程
1.1 update代码
1.2 update测试结果
1.3 协程代码
1.4 协程测试结果
代码非常简单。从结果可以看出:协程确实是比update耗不少,同时会造成数量不小的GC,个人猜测可能是由于协程的实现是通过保存现场然后再在需要调用时复现,从而产生的GC。本身代码段的性能也有一定差距。(100000倍下,实际其实还行,差距不算太大,不需要太过于紧张)。另外,测试发现,update本身的性能消耗也不小。所以建议update中无代码时删掉update,在本机环境下能从空update 88ms 的消耗减至 11ms. (懒,图就不贴了)。所以建议协程还是不要滥用
暂无关于此日志的评论。