1

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

我发现的唯一信息-> 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

4

2 回答 2

5

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

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

也就是说,这种微基准在很大程度上是无用的。不要相信我的话;阅读枪战本身对它的评价。您应该阅读整篇文章,但我会引用一些有趣的引文:

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

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

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

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

于 2012-06-04T11:36:45.417 回答
0

这说:苹果比香蕉更绿。

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

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

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

于 2012-06-04T11:36:37.510 回答