9

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

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

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

我对某种权威的答案很感兴趣,尤其是来自熟悉 Moonlight 的代码和当前状态的人。

谢谢!

4

3 回答 3

20

在 2.0 版本之后进行了一些优化调整,这应该会有所改善。不过,一般的答案是,Moonlight 目前没有像 Windows 上的 Silverlight 那样充分利用硬件加速。

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

然而,抛开借口不谈,我们请来了 David Reveman(著名的 XGL/Compiz 创建者)与我们一起优化 Moonlight 并为我们实现 Silverlight 3.0 着色器效果。他将考虑让 Moonlight 能够利用 OpenGL 来加快渲染速度。

我认为我们还需要解决一些错误,这些错误会导致屏幕的更大区域无效(并因此重绘)而不是绝对必要的区域。这是另一个导致渲染速度大幅下降的领域。

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

于 2010-01-27T23:39:59.753 回答
4

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

月光2不是。

于 2010-01-27T20:43:46.700 回答
1

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

于 2011-08-04T21:12:45.250 回答