【问题标题】:What are the strengths of Lua over CSharpCodeProvider in C# for dynamic code execution?在 C# 中,Lua 在动态代码执行方面优于 CSharpCodeProvider 的优势是什么?
【发布时间】:2010-09-28 10:47:40
【问题描述】:

在我的场景中,我想解释一个脚本文件并从程序集中执行方法。 Lua 会给我带来什么好处?如果您同时使用过 Lua 和 CSharpCodeProvider,请对比一下您的体验。

【问题讨论】:

  • 您能否编辑您的问题,让人们比较和对比 API,而不仅仅是性能?

标签: c# lua


【解决方案1】:

C# 的主要优点是它是编译和 JITted 的(尽管 LUA 在这些路线上有实验性代码)。

LUA 的主要优点是它不需要编译。它运行速度较慢,但​​具有更好的引导时间。它还具有较少数量的引导代码(例如,您不需要使用 System; ... namespace MyNs { ... class MyClass { ... 等等)。

最终,LUA 在脚本世界的统治是至高无上的:但它无法与 C# 在性能世界中的表现相媲美,反之亦然。

【讨论】:

  • 脚本的性能通常是无关紧要的。你能评论其他方面吗?
  • 其他方面?我在适合编写脚本的地方使用脚本,并在适合编译的地方编译。恕我直言,使用脚本语言创建丰富的企业 CRM 是一个糟糕的主意。使用 C# 创建游戏脚本同样没有意义。为正确的工作使用正确的工具:两者都不是更好
  • 哦,另外,当您使用程序编写程序时,CSharpCodeProvider 更胜一筹。当您需要允许用户更改功能时,Lua 更胜一筹。 CSharpCodeProvider 更适合非常高级的最终用户(如果用于脚本),Lua 更适合高级用户。
  • 哦!同样,Lua 更加包容。使用 C#,您可能错误地允许脚本超出其应允许的范围。 Lua 与外界的唯一接口是你给它的。也就是说,C# 对于脚本编写者来说更加灵活。我的诚实意见是让用户选择。
【解决方案2】:

您检查过 IronPython 吗?它与 Lua 非常相似,但是是原生 CLR 语言。

【讨论】:

    猜你喜欢
    • 2021-08-14
    • 2013-05-31
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多