当sethook设置为空函数时,会对性能产生可观的影响吗?

我正在编写一个小型分析库,基于挂钩来为我的lua代码进行分析,因为我不能使用任何现有的(公司政策)。

我在考虑是否有意义通过将变量设置为真来始终对所有脚本进行按需分析。

例如:

function hook(event)
  if prof_enabled then
    do_stuff()
  end
end

--(在主上下文中)
debug.sethook(hook, "cr")

所以问题是,如果prof_enabled = false并且永远设置勾子,我是否应该期望显着的性能损耗?我不期望得到精确的答案,而是一些见解(也许,例如lua解释器会进行优化)?

我知道最好的解决方案是仅在需要时设置钩子,但我不能在这里这样做。

点赞