ps:更不用说相同任务的闭包实现的代码复杂度了。
问问题
865 次
1 回答
2
闭包的内存开销将小于协程(除非您在闭包中有很多“upvalues”,而协程中没有)。调用闭包的时间开销也可以忽略不计,而调用协程的开销很小。从我所见,Lua 在协程切换方面做得很好,但如果性能很重要并且您可以选择不使用协程,那么您应该探索该选项。
如果您想自己做基准测试,为此或 Lua 中的任何其他内容:
你collectgarbage("collect");collectgarbage("count")
用来报告所有非垃圾回收内存的大小。(您可能想要“收集”几次,而不仅仅是一次。)在创建某些东西(闭包、协程)之前和之后执行此操作,以了解它消耗了多少大小。
你习惯于os.clock()
计时。
另请参阅有关分析的 Lua 编程。
于 2010-02-26T13:23:38.137 回答