【问题标题】:Comparing Lua with Mono [closed]比较 Lua 和 Mono [关闭]
【发布时间】:2012-06-04 11:21:57
【问题描述】:

我想做一些研究,但我找不到关于这个主题的任何信息。

我找到的唯一信息 -> http://benchmarksgame.alioth.debian.org/u32/compare.php?lang=csharp&lang2=lua

而且我不确定如何解释这个图表。 如果我是对的,它基本上说 Lua 比 Mono 快 10 倍。 但是 Mono 的内存使用率是 Lua 的 8 倍左右。

这对性能有什么影响?

比较 LuaMono -> 优点/缺点

编辑: [游戏开发] Cryengine 3 使用 c++/lua atm。但是有些人为这个引擎发布了一个单声道端口。我对单声道非常熟悉。但是现在我想对 Lua 做一些研究,看看是否值得学习这种语言,或者我是否应该坚持使用 Mono

【问题讨论】:

  • Embedding: mono vs lua的可能重复
  • 检查了您的链接,我的问题有所不同。我想比较一般的语言 -> 编码速度、性能、学习曲线等
  • 对我来说,这些图表看起来完全相反 - C# 更快,而 Lua 消耗的内存更少。
  • 哦,你是对的 :x 。这个图表可靠吗?
  • @MaikKlein,我认为这可能取决于您要做什么,您对 Lua 和/或 C# 的体验等。链接中的基准通常不是很有帮助。

标签: performance mono lua language-comparisons


【解决方案1】:

您正在比较apples to oranges。 C# 是一种静态类型语言,编译为CIL 这是一种字节码语言,由虚拟机运行(或通常为JITted),用于Web 和独立应用程序开发。 Lua 是一种动态类型的脚本语言,通常由解释器运行,通常作为可扩展的脚本语言嵌入到更大的应用程序中。

另外,您对基准的解释是错误的。条形图显示,与等效的 Lua 程序相比,Mono 程序的运行时间约为 1/10。

也就是说,这种微基准在很大程度上是无用的。不要相信我的话;阅读what the Shootout itself has to say about it。您应该阅读整篇文章,但我会引用一些有趣的引文:

“基准测试的性能,即使它来自真实程序,也可能无助于预测具有不同热点的类似程序的性能。”

“在高吞吐量环境中使用解释型语言可能看起来很矛盾,但我们发现 CPU 时间很少是限制因素;语言的可表达性意味着大多数程序都很小并且大部分时间都在使用I/O 和本机运行时代码中的时间。”

“将编程语言相互比较,就好像它们的设计者打算将它们用于完全相同的目的——事实并非如此。”

长话短说:根据它是否能很好地完成你想要用它做的事情、它是否能让你清楚地表达你的意图、它是否能让你编写干净、可维护的代码来选择你的语言;不是基于一些基本上毫无意义的数字。

【讨论】:

  • 我之所以问这个问题是因为我有可能将 Lua 或 Mono 用于 CryEngine 3 [GameDevelopment]。我对Mono很熟悉,只是想找找Lua的一些优点。
  • 哦,你为什么不一开始就这么说呢? stackoverflow.com/questions/564665/advantages-of-lua :)
  • >>基本上没用...你应该通读全文
【解决方案2】:

这说:苹果比香蕉更绿。

您不能只说“Lua 消耗的内存比 C# 少,但 CPU 周期多 50%”。您必须根据您的上下文比较它们,例如你想建立什么。

当你想计算 5*5 时,好吧,Lua 可能会更快(在实现方面)。但如果你想构建一个有很多客户端的 ERP 应用程序,我不会推荐 Lua。

所以我们不能给你一个明确的优缺点列表,因为这在很大程度上取决于你想做什么。

【讨论】:

  • 没有 LUA 语言。只有Lua。这是一个专有名称,而不是首字母缩略词。
  • >>5*5,好吧,Lua 可能更快
猜你喜欢
  • 1970-01-01
  • 2012-06-19
  • 2011-06-19
  • 2013-07-27
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
相关资源
最近更新 更多