在最近关于Silverlight的讨论中,提出了速度的优势。 Silverlight的论点是它在浏览器中的表现比Javascript好,因为它是编译(和管理)的代码。
然后声明这个优势仅适用于IE,因为IE解释了与其他浏览器(如Chrome和FireFox)相比效率低下的Javascript,这些浏览器在执行前将Javascript编译为机器代码,因此与Silverlight一样执行。
有没有人对这个性能问题有明确的答案。即,Silverlight和Javascript在Chrome和Firefox上具有相似的性能吗?
猜测很有趣。或者我们实际上可以尝试一两次测试......
Silverlight vs. Javascript chess sample已针对Silverlight 2进行了更新。当我运行它时,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。
Sre,如果你正在使用“Internet Exploder”,它可能会......
如果您正在使用V8(Chrome)或即将推出的Safari和FireFox,我会非常怀疑它;)
我很想看到国际象棋正在使用Silverlight和Chrome浏览器使用Javascript。那会摇滚MSFT ...... !! ;)
大多数浏览器都在虚拟机中运行Javascript。然而,Javascript仍然是一种时髦的语言,即使像V8这样的“快速”虚拟机也因现代标准而非常缓慢。
我希望CLR更快。
我在建筑上说,这是一个洗。
一方面,Silverlight是MSIL代码,与原始的优化本机代码相比速度相当快,但由于VM(CLR)开销仍然运行较慢,并且在ngen'd时仍然会有较慢的初始加载时间。
另一方面,由于Javascript引擎的巨大变化具有一个数量级或更多的性能范围,因此Javascript的速度更不可靠。你有像IE这样的慢速解释器,虽然IE8正在加快速度,然后你有更快的编译器/解释器,如SpiderMonkey和V8,它们最近才开始探索Javascript的性能极限。像TraceMonkey这样的R&D阶段也有新技术,它们极大地提高了Javascript性能(接近本机代码速度)。 Javascript确实具有单线程的固有缺点,但考虑到编写好的线程代码的难度,很难说它有多大差异。
在比较苹果和苹果的那一天结束时,真正的性能瓶颈是DOM,并且在那里使用什么技术来操作它并不重要。
我不明白为什么你要尝试将脚本语言与浏览器插件进行比较。他们不做同样的事情。前者与DOM交互,而后者在浏览器中运行多媒体应用程序。
从性能的角度比较Flash和Silverlight对我来说似乎更有用。
编辑:经过一些研究,我发现你可以在Silverlight中与DOM进行交互。我不认为它可以被视为一个很好的Javascript替代品,但性能问题除外,除非你需要一些沉重的客户端交互。我看到两个主要的不满:
1)您将强制用户下载Silverlight应用程序,而不是依赖于相对较小的.js文件。
2)在使用您的页面之前,您的用户需要安装Silverlight。
从我做过的粗略测试中,Silverlight运行得更快。以下是我从qazxsw poi收集的一些有趣结果
一般来说,Silverlight要快得多,但是Chrome的javascript实现让所有其他人都感到震惊!
请记住,这只适用于一台机器,一台操作系统(XP)等,您需要进行更广泛的测试才能实现更多目标。
我会说是的,因为它有.NET的CLR。在那时,随着谷歌Chrome中实现的JavaScript的重新发展以及尚未完全发布的Firefox 3.1,人们可能希望对自己做一些基准测试;我还不知道有任何比较。 (任何人?)
尽管如此,在我看来,.NET通常应该比Javascript更快,并且如前所述,这不会加速网络。因此,对于复杂的算法,SilverLight会更快,但对于网络请求,您可能没有任何明显的差异。
关于性能问题,您可能需要查看Flash 10,它可以使用“Alchemy”来允许c / c ++代码。这可能是比SilverLight更便携的解决方案。
看起来Chrome的javascript实现比Silverlight更快
平台应该在这里考虑。 Silverlight在Linux或Solaris或Mac中的表现非常重要!
如何abt HTML5。我认为在比较javascript的性能时HTMl起着严重的作用。所以我们应该使用HTML5 + javascript和Silverlight来比较性能。