Lua - xpcall和Try一样慢...用其他语言捕获?

时间:2017-12-14 18:42:06

标签: lua

我似乎无法在网上找到有关此内容的任何信息,但使用xpcall与直接在lua中调用函数有什么性能影响:

a)什么时候没有错误?

b)发生错误时?

是否类似于try ...来自其他语言的处理异常会导致性能问题?

1 个答案:

答案 0 :(得分:5)

谈论异常处理的成本(如C ++)的语言是那些在一般情况下用于高性能的语言,因为从异常中清理涉及一个棘手而昂贵的堆栈展开过程,而不仅仅是弹出堆栈和返回。 Lua是一种字节码解释语言,它显式地存储在其(虚拟)堆栈上展开所需的数据。所以它比不进行受保护的调用要慢一些,但老实说,如果你担心像这样的微优化,那么你使用了错误的语言。