使用Lua和C#最有效的方法是什么?

时间:2008-12-25 17:15:40

标签: c# performance clr lua

根据我的理解,Lua是一种可嵌入的脚本语言,可以在对象上执行方法。要避免哪些陷阱?将Lua用作解释器并在Web环境或规则引擎中执行方法是否可行?

4 个答案:

答案 0 :(得分:6)

Lua脚本编写on track成为Apache Web服务器的核心模块。

有一些工具可以绑定Lua和C#/ .NET代码hereLuaInterface是最新的。

答案 1 :(得分:5)

Lua非常快 - 脚本可以预编译为字节码,函数执行接近C ++虚方法调用。这就是它在游戏行业中用于在游戏中编写AI,插件和其他高级内容的原因。

但是你将C#和web服务器放在你的问题标签中。

如果您没有考虑嵌入式Web服务器 - 那么Lua不是很强大。 Lua是ANSI C - 它编译为本机代码,因此它不是非常欢迎您的asp.net服务器,也不欢迎您的C#代码。想想“中等信任”或“绑定”或“64位”。

足够的陷阱。如果您已经在使用C#,则没有理由在Web服务器上避免使用它。它被编译和缓存。它服务于像这样的大型网站。

答案 2 :(得分:2)

我们曾经在中型C#生物医学仪器控制应用程序中使用Lua作为我们的脚本语言。这是教会硬件人员如何编写自己的一小部分测试代码的好方法。

一旦IronPython成熟,我们认为由于Python功能更强大且与VS很好地集成(以及有更多人使用它),我们将用Python替换所有Lua。到目前为止,这一切都很顺利。 Lua是一个很好的小语言,我不确定在这一点上我能想到Lua优于Python的任何优点。

Lua可以快一点,但是如果你已经将你的域分成了脚本-y和非脚本-y,那么可能这不是一个重要因素。

答案 3 :(得分:1)

为什么我喜欢Lua,因为它擅长作为一种语言,特别是与C / C ++一起使用时应该如此。对我而言,这两者的合并是“使”成为语言的。

陷阱......缺乏扩展模块可以被视为一个。像没有CPAN,但有LuaRocks。如果你有足够的绑定来解决你的问题,取决于。如果没有,你可能需要制作它们。

语言陷阱.. Lua wiki中有一些愿望,可以被视为“陷阱”。没有“切换”声明。没有合适的“cond?a:b”格式。如果你不想让你的思维超越这些相当肤浅的语法,那么JavaScript可能适合你吗?

总的来说,它是一种语言,比没有它的编程提高了10-100倍。