Silverlight是否比JavaScript具有性能优势?

时间:2008-11-26 21:12:58

标签: javascript silverlight performance

在最近关于Silverlight的讨论中,提出了速度的优势。 Silverlight的论点是它在浏览器中的表现比Javascript好,因为它是编译(和管理)的代码。

然后声明这个优势仅适用于IE,因为IE解释了与其他浏览器(例如Chrome和FireFox)相比效率低的Javascript,这些浏览器在执行之前将Javascript编译为机器代码,因此执行以及Silverlight。

是否有人对此性能问题有明确的答案。即,Silverlight和Javascript在Chrome和Firefox上具有相似的性能吗?

10 个答案:

答案 0 :(得分:19)

猜测很有趣。或者我们实际上可以尝试一两次测试......

已为Silverlight 2更新Silverlight vs. Javascript chess sample。当我运行它时,C#平均每秒420,000个节点,而Javascript平均每秒23,000个节点。我正在运行Google Chrome的开发分支(v.4.4.154.25)。对于Silverlight来说,这几乎是18倍的速度优势。

Primes计算显示Silverlight的3倍优势:计算Javascript中的1,000,000个素数需要3.7秒,Silverlight需要1.2秒。

所以我认为,对于计算,Silverlight仍然具有相当强大的优势,我的直觉是它可能会保持这种状态。双方将继续优化,但在动态语言中可以优化的内容存在一些限制。

Silverlight在动画方面还没有优势。例如,Bubblemark测试显示Javascript以170 fps运行,Silverlight以100 fps运行。我想我们可以期待看到这种变化when Silverlight 3 comes out, since it will include GPU support

答案 1 :(得分:4)

大多数浏览器都在虚拟机中运行Javascript。然而,Javascript仍然是一种时髦的语言,即使像V8这样的“快速”虚拟机也因现代标准而非常慢。

我希望CLR更快。

答案 2 :(得分:2)

我不明白为什么要尝试将脚本语言与浏览器插件进行比较。 他们不做同样的事情。前者与DOM交互,而后者在浏览器中运行多媒体应用程序。

从性能的角度比较Flash和Silverlight对我来说似乎更有用。

编辑:经过一番研究后,我发现您可以在Silverlight中与DOM进行交互。我不认为它可以被视为一个很好的Javascript替代品,但性能问题除外,除非你需要一些沉重的客户端交互。我看到两个主要的不满:

1)您将强制用户下载Silverlight应用程序,而不是依赖于相对较小的.js文件。

2)在使用您的页面之前,您的用户需要安装Silverlight。

答案 3 :(得分:2)

我在建筑上说,这是一种清洗。

一方面,Silverlight是MSIL代码,与原始的优化本机代码相比速度相当快,但由于VM(CLR)开销仍然运行较慢,并且在ngen'd时仍然会有较慢的初始加载时间。 / p>

另一方面,由于Javascript引擎的巨大变化具有一个数量级或更多的性能范围,因此Javascript的速度更不可靠。你有像IE这样的慢速解释器,虽然IE8正在加快速度,然后你有更快的编译器/解释器,如SpiderMonkey和V8,它们最近才开始探索Javascript的性能极限。像TraceMonkey这样的R& D阶段也有新技术,它们极大地提高了Javascript性能(接近本机代码速度)。 Javascript确实具有单线程的固有缺点,但考虑到编写好的线程代码的难度,很难说它有多大差异。

在比较苹果与苹果的那一天结束时,真正的性能瓶颈是DOM,并且在那里使用什么技术操作它并不重要。

答案 4 :(得分:2)

从我做过的粗略测试中,Silverlight运行得更快。 以下是我从http://bubblemark.com/

收集的一些有趣结果

Bubblemark comparisons by browser and Javascript vs. Silverlight

一般来说,Silverlight的速度要快得多,但是Chrome的javascript实现让所有人都感到震惊!

请记住,这仅适用于一台机器,一台操作系统(XP)等,您需要进行更广泛的测试才能获得更多。

答案 5 :(得分:0)

我会说是的,因为它有.NET的CLR。在那时,随着谷歌Chrome中实现的JavaScript的重新发展以及尚未完全发布的Firefox 3.1,人们可能希望对自己做一些基准测试;我还不知道有任何比较。 (人?)

尽管如此,在我看来,.NET通常应该比Javascript更快,并且如前所述,这不会加速网络。因此,对于复杂的算法,SilverLight会更快,但对于网络请求,您可能没有任何明显的差异。

关于性能问题,您可能想看看Flash 10,它可以使用“Alchemy”来允许c / c ++代码。这可能是比SilverLight更便携的解决方案。

答案 6 :(得分:0)

看起来Chrome的javascript实现比Silverlight

更快

答案 7 :(得分:0)

此处应考虑平台。 Silverlight在Linux或Solaris或Mac中的表现非常重要!

答案 8 :(得分:0)

如何abt HTML5。我认为在比较javascript的性能时HTMl扮演着重要的角色。因此,我们必须使用HTML5 + javascript和Silverlight来比较性能。

答案 9 :(得分:-3)

Sre,如果您正在使用“Internet Exploder”,它可能会...

如果您正在使用V8(Chrome)或即将推出的Safari和FireFox,我会非常怀疑它;)

我很想看到国际象棋正在使用Silverlight和Chrome浏览器使用Javascript。那会摇滚MSFT ...... !! ;)