2008-11-26 69 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的性能。

相關問題