Moonlight 2 vs Silverlight 3:巨大的性能差距

时间:2010-01-27 20:40:13

标签: .net silverlight mono benchmarking moonlight

我在http://bubblemark.com尝试了简单的测试“Silverlight 2.0动画测试”,令人惊讶的是Moonlight在Linux上只提供了26 fps。 Windows / Silverlight 3在同一台机器上给了我192 fps。为什么Moonlight比Silverlight慢得多?

如果您计划在Silverlight中开发高fps,多平台应用程序,这种性能差距非常重要,因为目前Moonlight的速度可能是一个限制因素。

请不要回答,如果您要说的唯一的事情是“月光是重新实现,它必须更慢”,或“它落后于官方版本”这样的琐事。

我对某种自动回答感兴趣,特别是熟悉月光代码和当前状态的人。

谢谢!

3 个答案:

答案 0 :(得分:20)

在2.0发布之后进行了一些优化调整,这应该会改善一些事情。但一般的答案是,Moonlight目前没有像Windows上的Silverlight那样利用硬件加速。

部分原因是Linux上的图形驱动程序没有针对开罗使用的特定代码路径进行优化,后者是Moonlight使用的低级图形库。

然而,除了借口之外,我们还带来了David Reveman(着名的XGL / Compiz创建者)与我们合作优化Moonlight以及为我们实现Silverlight 3.0着色器效果。他将考虑让Moonlight利用OpenGL来加快渲染速度。

我认为我们还遇到了一些问题,导致屏幕的更大区域无效(并因此重新绘制)而非绝对必要。这是另一个导致渲染速度大幅下降的领域。

希望能回答你的问题。如果您有更多问题,请随时通过irc.gnome.org上的#moonlight向IRC询问我们

答案 1 :(得分:4)

我的猜测是Silverlight 3正在使用硬件加速。

月光2不是。

答案 2 :(得分:1)

根据jstedfast的回复,我已经确认在Moonlight 4预览版(3.99.0.3)中,屏幕验证/硬件加速似乎存在问题。简单地将工具提示分配到主屏幕会使接口减慢到在Moonlight中无法使用的程度,但在相同的硬件下可以在Silverlight中正常工作。但是,非图形操作具有可比较的执行时间。