Lua - xpcall 是否比其他语言中的 Try...Catch 慢?

我在网上找不到有关此的任何信息,但是在Lua中使用 xpcall 与直接调用函数相比性能方面存在什么影响:

a) 当没有错误发生时?

b) 当发生错误时?

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

点赞
用户787480
用户787480

将成本的异常处理注重的语言,例如C++,是那些旨在在一般情况下具有高性能的语言,因为清除异常需要一个棘手而昂贵的堆栈展开过程,相比于弹出堆栈和返回而言。Lua是一个字节码解释语言,并且显式地将需要的展开数据存储在其(虚拟)堆栈上。所以它比不进行保护的调用略慢一点,但是如果你担心这样的微型优化,那么你使用的是错误的语言。

2017-12-14 18:58:27