应该在Lua或C中实现"无操作"功能吗?

Nic*_* M. 3 lua gettext no-op

我有以下函数只返回其字符串参数:

function N_(s)
  return s
end
Run Code Online (Sandbox Code Playgroud)

您可以从gettext中识别此函数名称.它只是.pot提取器的好处的标记.

在C或Lua中实现N_()会更有效吗?

你能给我一个经验法则吗?

另一个问题:

假设我的函数有点复杂:

function Z_(s)
  return dict[s] or s
end
Run Code Online (Sandbox Code Playgroud)

在C或Lua中实现Z_()会更有效吗?

(我将从Lua代码中调用N_()和Z_(),而不是从C代码调用.)

lhf*_*lhf 5

我没有测量过这种情况的区别,但我希望用Lua写它会更快.调用C函数有点贵.

根据经验,将它全部写在Lua中,除非它是一个存在库C函数的长任务.

请记住,编写Lua代码可能比使用C代码更有效率.因此,你很可能在Lua中早日做好准备.表现可能会足够好.

在所有情况下,YMMV等都是自己测量的.

  • 关于编写Lua代码比使用C代码更高效的非常好的观点.效率不仅仅是计算机效率,还包括人类效率. (3认同)