在 Unity3d 中将 O(1) 函数作为协程值得吗?

Is it worth to make an O(1) function a coroutine in Unity3d?

我有 2 个函数,Foo()Bar()

Foo的时间复杂度为θ(1),Bar的时间复杂度为θ(n²),它们分别一个接一个执行,Bar与Foo没有依赖关系。

是否值得将 Foo 设为协程以获得一些加速?

是否值得并行化?这取决于。这里的权衡是在时间性能和代码的可读性/可维护性之间进行权衡。

我只会在必要时实施时间性能改进。您应该问的第一个问题是,您或用户是否注意到滞后或性能不佳?如果否,则无需优化。

第二步是剖析和测量。您应该知道代码的哪一部分是关键的。因此,对于 Foo() 和 Bar() ,您应该测量它们在平均情况和最坏情况下花费的时间。然后看看你能节省多少时间。然后你需要决定是否值得。 ;)

就像评论中提到的那样,大 O 表示法通常不会对您有太大帮助。测量一下!

Unity 协程仍然在主线程上执行。相继。除非你使用资产商店的 "Thread Ninja - Multithread Coroutine" 之类的东西,否则你不会从协程中获得任何东西。