2008-11-26 73 views
14

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

然后指出,这个优点只适用于IE浏览器,因为IE浏览器与其他浏览器(如Chrome和FireFox)相比效率低下,因为它在执行前将JavaScript编译为机器代码,因此与Silverlight 。

有没有人有这个性能问题的明确答案。即Do /将Silverlight和Javascript在Chrome和Firefox上的性能相提并论吗?

+0

好编辑杰森 - 谢谢。 – Guy 2008-12-05 17:06:58

+1

是否有人更新过此测试以获取最新版本的Chrome vs Silverlight 4? – 2010-12-17 15:15:08

回答

19

投机是有趣的。或者我们实际上可以尝试一两个测试...

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

素数计算显示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

+0

Silverlight 3.0的最新Bubblemark数字(启用了位图缓存)显示Silverlight以合理的幅度轻松击败Flash并获得JavaScript。 – 2010-03-22 06:11:29

4

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

我期望CLR更快。

2

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

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

编辑:经过一番研究,我发现你可以在Silverlight中与DOM交互。尽管我不认为它可以被看作是一个很好的Javascript替代品,除非你需要一些沉重的客户端交互,除了性能问题。我看到两个主要的不足之处:

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

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

-3

SRE,如果你使用“网络爆”,它可能会...

如果您使用V8(铬)或即将推出的Safari和Firefox,我严重怀疑;)

我很想看到国际象棋顺便说一句,IE浏览器正在使用Silverlight和Chrome浏览器正在使用Javascript。这将摇滚MSFT ...! ;)

+0

我使用Chrome,但我不认为它是比较特别有用的选择,因为市场份额非常小。 – 2009-02-15 03:29:51

0

我会说是的,因为它有.NET的CLR。那么,随着谷歌浏览器中实施的JavaScript的最新发展以及尚未完全发布的Firefox 3.1,人们可能想要做一些自己的基准测试;我还不知道任何比较。 (任何人?)

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

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

2

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

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

另一方面,由于Javascript引擎的巨大差异,JavaScript的速度远远低于可靠性,因为JavaScript引擎的性能数量级甚至更高。尽管IE8正在加快速度,但IE浏览器的解释器速度很慢,然后你有更快的编译器/解释器,如SpiderMonkey和V8,它们最近才开始探索Javascript的性能极限。在TraceMonkey等D阶段还有一些新技术,它们极大地提高了JavaScript性能(接近本机代码速度)的巨大潜力。 Javascript确实有单线程的固有缺点,但由于编写好的线程代码很困难,很难说这种差异有多大。

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

2

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

Bubblemark comparisons by browser and Javascript vs. Silverlight http://www.freeimagehosting.net/uploads/498b58f566.jpg

聚集一般来说一些野趣结果,Silverlight的快得多,但Chrome的JavaScript实现撕毁其他人要位!

请记住,这只是在一台机器上,一个操作系统(XP)等,你需要做更多更广泛的测试来实现更多。

0

看起来是Chrome的JavaScript实现比Silverlight的

0

平台应该被考虑在这里更快。如何在Lnux或Solaris或Mac上执行Silverlight是一个很大的问题!

0

HTML5怎么样。我觉得在比较javascript HTMl的性能的时候起到了很大的作用。所以我们肯定会比较使用HTML5 + javascript和Silverlight的性能。

相关问题