2008-11-26 15 views
14

Tại một cuộc thảo luận gần đây về Silverlight, lợi thế của tốc độ được nâng lên. Đối số cho Silverlight là nó thực hiện tốt hơn trong trình duyệt hơn Javascript vì nó được biên dịch (và quản lý) mã. Sau đó, nó được tuyên bố rằng lợi thế này chỉ áp dụng cho IE vì IE giải thích Javascript không hiệu quả khi so sánh với các trình duyệt khác như Chrome và FireFox, biên dịch Javascript thành mã máy trước khi thực thi và thực hiện như Silverlight .Silverlight có lợi thế về hiệu năng so với JavaScript không?

Có ai có câu trả lời dứt khoát cho câu hỏi về hiệu suất này không. tức là/Silverlight và Javascript có hiệu suất tương đương trên Chrome và Firefox không?

+0

Chỉnh sửa tốt Jason - cảm ơn. – Guy

+1

Có ai đã cập nhật thử nghiệm này cho phiên bản Chrome vs Silverlight 4 mới nhất không? –

Trả lời

19

Suy đoán thật thú vị. Hoặc chúng tôi thực sự có thể thử một hoặc hai thử nghiệm ...

Điều đó Silverlight vs. Javascript chess sample đã được cập nhật cho Silverlight 2. Khi tôi chạy nó, C# trung bình 420.000 nút mỗi giây so với Javascript ở 23.000 nút mỗi giây. Tôi đang chạy nhánh dev của Google Chrome (v. 0.4.154.25). Đó vẫn là một lợi thế tốc độ gần như 18x đối với Silverlight.

Tính toán số nguyên tố cho thấy lợi thế gấp 3 lần cho Silverlight: tính 1.000.000 lần truy cập trong Javascript mất 3,7 giây, trong Silverlight mất 1,2 giây.

Vì vậy, tôi nghĩ rằng để tính toán, vẫn còn một lợi thế khá mạnh cho Silverlight, và cảm giác ruột của tôi là nó có khả năng ở lại như vậy. Cả hai bên sẽ tiếp tục tối ưu hóa, nhưng có một số giới hạn đối với những gì bạn có thể tối ưu hóa bằng ngôn ngữ động.

Silverlight không (chưa) có lợi thế khi nói đến hoạt ảnh. Ví dụ: kiểm tra Bubblemark cho thấy Javascript đang chạy ở 170 khung hình/giây và Silverlight chạy ở tốc độ 100 khung hình/giây. Tôi nghĩ rằng chúng ta có thể mong đợi để thấy sự thay đổi đó when Silverlight 3 comes out, since it will include GPU support.

+0

Số Bubblemark mới nhất cho Silverlight 3.0 (với bộ nhớ đệm bitmap được kích hoạt) hiển thị Silverlight đánh Flash khá dễ dàng và JavaScript với mức lãi hợp lý. –

4

Javascript được chạy trong một máy ảo bởi hầu hết các trình duyệt. Tuy nhiên, Javascript vẫn là một ngôn ngữ sôi nổi, và ngay cả một máy ảo "nhanh" như V8 là cực kỳ chậm theo tiêu chuẩn hiện đại.

Tôi mong đợi CLR sẽ nhanh hơn.

2

Tôi không hiểu tại sao bạn đang cố gắng so sánh ngôn ngữ kịch bản với trình cắm trình duyệt. Họ không làm điều tương tự. Các tương tác trước đây với DOM trong khi sau này chạy các ứng dụng đa phương tiện bên trong trình duyệt.

So sánh Flash và Silverlight từ quan điểm hiệu suất có vẻ hữu ích hơn đối với tôi.

EDIT: Sau khi một số nghiên cứu tôi phát hiện ra rằng bạn có thể tương tác với DOM trong Silverlight. Tôi không nghĩ rằng nó có thể được xem như là một thay thế Javascript tốt mặc dù, quan tâm hiệu suất sang một bên, trừ khi bạn có một số tương tác phía máy khách nặng cần thiết. Tôi thấy hai sự không thích hợp chính:

1) Bạn sẽ buộc người dùng tải xuống ứng dụng Silverlight thay vì dựa vào tệp .js tương đối nhỏ.

2) Người dùng của bạn được yêu cầu cài đặt Silverlight trước khi sử dụng trang của bạn.

-3

Srê, nếu bạn đang sử dụng "người khai phá Internet" nó có lẽ sẽ ...

Nếu bạn đang sử dụng động cơ V8 (Chrome) hoặc Safari sắp tới và FireFox, tôi nghiêm túc nghi ngờ nó;)

Tôi rất thích thấy Cờ vua thn BTW nơi IE đang chơi bằng Silverlight và Chrome đang sử dụng Javascript. R wouldNG sẽ đá MSFT ... !! ;)

+0

Tôi sử dụng Chrome, nhưng tôi không nghĩ rằng đây là lựa chọn đặc biệt hữu ích để so sánh vì thị phần quá nhỏ. –

0

Tôi muốn nói có, vì nó có CLR của .NET. Lúc đó, với những phát triển không ổn định trong JavaScript được triển khai trong Google Chrome và trong Firefox chưa được phát hành đầy đủ 3.1, người ta có thể muốn làm một số điểm chuẩn của riêng mình; Tôi chưa biết về bất kỳ sự so sánh nào. (bất kỳ ai?)

Tuy nhiên, theo ý kiến ​​của tôi, .NET nên nhanh hơn Javascript, và như đã lưu ý trước đây, điều này sẽ không tăng tốc mạng. Do đó đối với các thuật toán phức tạp, SilverLight sẽ nhanh hơn, nhưng đối với các yêu cầu mạng, bạn có thể không có bất kỳ sự khác biệt đáng chú ý nào.

Trên câu hỏi hiệu suất, bạn có thể muốn xem Flash 10 có thể cho phép mã c/C++ sử dụng "Alchemy". Đây có thể là giải pháp di động nhiều hơn SilverLight.

2

Tôi muốn nói rằng về mặt kiến ​​trúc, đó là việc rửa.Một mặt Silverlight là mã MSIL, nhanh hơn một cách hợp lý so với mã nguồn gốc được tối ưu hóa thô nhưng vẫn chạy chậm hơn do chi phí VM (CLR) và sẽ vẫn có thời gian tải ban đầu chậm khi bị ngả.

Mặt khác tốc độ của Javascript ít đáng tin cậy hơn do các biến thể lớn trong các công cụ Javascript có thứ tự độ lớn, hoặc nhiều hơn, phạm vi hoạt động. Bạn có trình thông dịch chậm như IE, mặc dù IE8 đang tăng tốc mọi thứ, và sau đó bạn có trình biên dịch/phiên dịch nhanh hơn như SpiderMonkey và V8 chỉ mới bắt đầu khám phá các giới hạn hiệu suất của Javascript. Ngoài ra còn có các công nghệ mới trong giai đoạn R & D như TraceMonkey có tiềm năng to lớn để cải thiện đáng kể hiệu suất của Javascript (gần với tốc độ mã nguồn gốc). Javascript không có bất lợi vốn có mà nó là đơn luồng, nhưng với những khó khăn của việc viết mã luồng tốt thật khó để nói có bao nhiêu sự khác biệt mà làm cho.

Vào cuối ngày khi so sánh táo để làm tắc nghẽn nút cổ chai hiệu suất thực là DOM, và ở đó không quan trọng bạn sử dụng công nghệ nào để thao tác nó.

2

Từ thử nghiệm cursory tôi đã thực hiện, Silverlight chạy nhanh hơn. Dưới đây là một số kết quả intersting tôi thu thập được từ http://bubblemark.com/

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

Nói chung, Silverlight là nhanh hơn nhiều, nhưng thực hiện javascript của Chrome xé những người khác thành từng mảnh!

Xin lưu ý, đây chỉ là một máy, một hệ điều hành (XP), v.v. bạn sẽ cần phải thực hiện nhiều thử nghiệm mở rộng hơn để đạt được nhiều hơn.

0

Dường như việc triển khai javascript của Chrome nhanh hơn Silverlight

+0

silverlight không có phần trên là sản phẩm microsoft. [This] (http://geekswithblogs.net/lbugnion/archive/2010/07/14/javascript-vs-silverlight-an-answer.aspx) liên kết cung cấp nhiều byte hơn – vaibhav

0

Nền tảng cần được xem xét tại đây. Làm thế nào Silverlight thực hiện trong Lnux hoặc Solaris hoặc Mac thực sự là câu hỏi lớn!

0

Làm thế nào abt HTML5 .Tôi nghĩ rằng trong khi so sánh hiệu suất của javascript HTMl đóng một vai trò nghiêm trọng. Vì vậy, chúng tôi chắc chắn shoul so sánh hiệu suất sử dụng HTML5 + javascript và Silverlight.

Các vấn đề liên quan