【问题标题】:Is calling c function from lua faster than from c? [closed]从 lua 调用 c 函数是否比从 c 调用更快? [关闭]
【发布时间】:2015-06-12 19:56:09
【问题描述】:

我对 lua 有点陌生(嗯,我实际上学习了基本的 lua 以及如何从 c 中使用 lua),并且我正在使用 c 中的 lua 开发一个简单的俄罗斯方块游戏。 (听起来很奇怪,但只是为了练习:D)

还有几个问题:

  1. 我想知道从 lua 调用 c 函数是否更快。
  2. 如果 Q1 是,是否可以从 lua 调用 c 中的绘图函数? 它不会导致我的程序变慢吗?
  3. 推荐的 Lua_C 编程(只是我调用使用 lua 作为脚本语言的程序的方式)结构是什么?

例如)应该用 Lua 编写什么样的代码?应该用 C 编写什么样的代码? (绘图代码、逻辑代码等)

【问题讨论】:

    标签: c function lua


    【解决方案1】:
    1. 简单的回答:不会。不会更快。从 Lua 到 C 的函数调用会产生一些开销。

    2. 调用绘图函数是可以的,因为实际绘图将比函数调用花费更多的时间。

    3. 经验法则通常是使用脚本语言(在本例中为 Lua)编写逻辑,并让 C 处理任何性能密集型部分,例如渲染和繁重的计算。例如,让 C 处理角色移动之类的东西,您可能不会获得任何性能。您可以使用分析器来确定哪些部分可能会从 C 实现中获得性能。

    【讨论】:

    • 对于 1,这完全取决于 C 函数的作用。调用 math.sin 可能比在 Lua 中编写 sin 函数快得多,即使它们执行相同的计算。
    • @lhf 我同意你的说法,这正是我在问题 3 中指出的,但他的问题是从 Lua 调用 C 函数是否比直接从 C 调用更快. 尽管我对这种特殊情况(从 Lua 到 C)的了解非常有限,但这对我来说似乎很疯狂。
    猜你喜欢
    • 2014-09-01
    • 2013-02-19
    • 2015-12-30
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多