2009-09-21 19 views
5

Động cơ JavaScript nhanh nhất là gì? Thật sự nó có ảnh hưởng sao?Động cơ JavaScript nhanh nhất là gì và nó thực sự quan trọng?

+3

Bạn có quan trọng với bạn không? – StingyJack

+1

@StingyJack hey .. xin lỗi nếu ngôn ngữ của tôi không chính xác. Tôi không bao giờ gặp bất kỳ sự khác biệt động cơ nào cả. Bạn muốn biết, cộng đồng cảm thấy gì. – rajakvk

+2

Hiệu suất hiển thị JavaScript rất quan trọng đối với những người xây dựng các ứng dụng mạnh mẽ bằng JavaScript. Điều quan trọng đối với những người sử dụng các khung công tác JavaScript phức tạp là khung công tác chung hoạt động với chi phí hiệu quả xử lý so với kiến ​​trúc được xây dựng tùy chỉnh. –

Trả lời

9

Để sản xuất bạn thường không cần phải quan tâm đến công cụ JavaScript nào là nhanh nhất. Trang của bạn sẽ hoạt động trong tất cả các trình duyệt, thời gian phổ biến. Tuy nhiên, trong một số dự án mà bạn được tự do lựa chọn trình duyệt nào hỗ trợ (chẳng hạn như dự án sở thích hoặc dự án để sử dụng nội bộ), bạn sẽ thấy hiệu suất trong các trình duyệt khác nhau thay đổi rất nhiều.

Hai trình duyệt tôi tìm thấy để duy trì hiệu suất cao nhất là Mozilla Firefox với Spider Monkey engineGoogle Chrome với V8 engine. Apple Safari cũng là một trong những trình duyệt nhanh nhất với công cụ Nitro, mới trong phiên bản 4.0. Họ sử dụng các phương pháp mới để "biên dịch" các tập lệnh, khiến chúng hoạt động nhanh hơn rất nhiều so với trước đây. Trong tương lai, ngày càng nhiều trình duyệt sẽ chuyển sang công nghệ này, vì JavaScript đang trở thành một trong những công nghệ chính cho nội dung người dùng tương tác trên web. (Tôi đã không đề cập đến Opera 10 ở đây vì tôi chưa thử nghiệm riêng nó một cách rộng rãi, nhưng tôi cũng đã nghe thấy JavaScript chạy nhanh hơn.)

+1

Đúng - chúng tôi phải hỗ trợ tất cả các trình duyệt phổ biến, vì vậy không quan trọng là nhanh nhất. Tuy nhiên, các nhà phát triển muốn ** tất cả các trình duyệt ** để chạy javascript càng nhanh càng tốt, vì vậy khi chúng tôi thấy tốc độ lớn cải tiến động cơ JS và động cơ đó được mở nguồn cho các nhóm trình duyệt khác, điều đó thật thú vị. –

+0

Vâng, nó phụ thuộc vào cách bạn nhìn vào câu hỏi. "Thật sự nó có ảnh hưởng sao?" có thể có nghĩa là, "Động cơ JavaScript có bao giờ là nút cổ chai" hay "Liệu nó có tạo sự khác biệt trong cách viết mã của tôi ngay bây giờ không?" Xét về góc nhìn cổ chai - tuyệt đối! Có thể không phải trên một trang có rất ít JavaScript, nhưng với rất nhiều, tốc độ của JavaScript được gắn trực tiếp với tốc độ của ứng dụng. Xét về "cách tôi viết mã của tôi", có lẽ sẽ không thành vấn đề cho đến khi IE có động cơ nhanh hoặc không có thị phần. (Trừ khi bạn không cần phải nhắm mục tiêu nó vì một lý do nào đó.) –

+0

Chỉ cần thử nghiệm IE10 và Chrome mới nhất trên chuẩn SunSpider - IE10 thắng (~ 150ms cho IE10 so với 215ms dành cho Chrome). –

2

Có quan trọng không? Nó có lẽ không quan trọng - nhưng bạn là người duy nhất có thể trả lời điều đó cho ứng dụng của bạn.

Theo kinh nghiệm của tôi, hầu hết mọi trình duyệt đều đủ nhanh, ngoại trừ IE6 đáng chú ý, tất nhiên mọi thứ đều hút mọi thứ.

Nếu bạn nhìn vào actual benchmarks (có nhiều thứ ở đó) có vẻ như Chrome, FF 3.x và Safari thậm chí còn về hiệu suất Javascript, IE8 chỉ chậm hơn một chút và IE7 hơi xa hơn một chút phía sau (mặc dù, IMO, IE7 vẫn đủ nhanh cho hầu hết mọi thứ).

+0

tự hỏi, có bất kỳ trình chuyển đổi công cụ nào có sẵn như trình chuyển đổi tác nhân người dùng không? – rajakvk

+0

@rajakvk - Không thực sự, mặc dù có "IE Tab" cho Firefox cũng như "Nhiều trình duyệt IE" cho phép bạn dễ dàng kiểm tra mọi thứ trong Firefox và các hương vị khác nhau của IE. Nếu Javascript của bạn hoạt động trong Firefox và IE6, rất có thể nó sẽ hoạt động tốt trong các trình duyệt khác. –

+1

FF là một địa ngục chậm hơn rất nhiều so với chrome và safari khi nói đến javascript ... – corymathews

1

Có một điểm chuẩn rất tốt của hai dãy, V8 Benchmark Suite v4SunSpider JavaScript Benchmark có sẵn như là một sự so sánh ở đây:

http://www.tmsnetwork.org/blog/comparison-web-browsers-javascript-benchmark-scores

Bên cạnh đó, Jeff Atwood đã viết trên blog của mình về hiệu suất javascript trở lại trong năm 2007, hầu hết trong số đó vẫn còn hiệu lực bây giờ:

http://www.codinghorror.com/blog/archives/001023.html

1

Tốc độ của công cụ JavaScript phụ thuộc vào một số yếu tố, bao gồm cả chính mã đó. Một số mã có thể được tối ưu hóa cho các trình duyệt cụ thể, mặc dù các nhà phát triển không được phép làm như vậy.

Có quan trọng không? Nó chắc chắn không! Với sự phát triển Web 2.0 hiện tại, nơi chúng ta có JavaScript làm đủ mọi thứ về Ajax, tốc độ đột nhiên trở nên quan trọng. Ngay cả trang web này sử dụng JavaScript, mặc dù nó chỉ để thông báo cho tôi rằng một câu trả lời khác đã được đăng trong khi tôi đang nhập tin nhắn này.

Hầu hết các trình duyệt đều có động cơ riêng và chúng cạnh tranh rất khó với nhau để có được hiệu suất tốt nhất. Nhanh nhất? Chưa được xác định vì hầu hết các so sánh đều có chút màu cho công ty tài trợ so sánh.

Tuy nhiên, một công cụ nhanh là vô dụng khi mã được viết theo cách xấu ...

1

Nó thực sự phụ thuộc vào dự án của bạn.Nếu bạn chỉ sử dụng javascript tối thiểu cho trình xử lý sự kiện và một chút hoạt động ajax/dom, bạn có thể sẽ không sao cả. Nhưng nếu bạn sử dụng GWT hoặc một số khung javascript nặng khác thì điều đó có thể quan trọng.

Hướng của ứng dụng web là làm ít hơn trên máy chủ và hơn thế nữa trong trình duyệt. Phần mềm tôi hiện đang viết sẽ thực hiện tất cả các thế hệ html ở phía máy khách cũng như nhiều hoạt động khác. Có một sự khác biệt rất đáng chú ý giữa các trình duyệt nhanh và chậm. Trình duyệt chậm hơn vẫn chạy ở tốc độ chấp nhận được, nhưng chrome, safari và ff3.5 cực kỳ nhanh và nhạy. Hiện tại, tôi có thể nói rằng Chrome và Safari có vẻ là trình duyệt nhanh nhất cho ứng dụng của chúng tôi, nhưng tại một thời điểm nào đó nó lại giảm xuống nhiều hơn tốc độ js thuần túy. Tốc độ hoạt động của DOM cũng đóng một vai trò rất lớn.

3

Re: "có quan trọng không?"

Hiệu suất của các công cụ Javascript sẽ ngày càng trở nên quan trọng vì JS được sử dụng bên ngoài trình duyệt. Hiện tại có nhiều kịch bản và chương trình, khung kiểm thử, thậm chí là khung ứng dụng web phía máy chủ, v.v., chạy trong các công cụ JS bên ngoài của trình duyệt.

Nhiều người trong số này hiện đang chạy trên động cơ Rhino của Mozilla nhưng tôi hy vọng số lượng ngày càng tăng trong V8 là hiệu suất và hỗ trợ cho nhiều tính năng khác nhau (cũng như khả năng chạy tập lệnh không có JVM như Rhino yêu cầu) .

0

Điều quan trọng đối với tôi là nhà phát triển web; nhiều công cụ mà tôi dựa vào việc sử dụng javascript, và cũng giống như một nhà phát triển phụ trợ dành nhiều thời gian chờ biên dịch, một nhà phát triển giao diện người dùng cuối cùng có thể chờ đợi làm mới trang. Một công cụ javascript nhanh giúp tăng tốc độ này, đặc biệt khi trang phức tạp. Rõ ràng, nếu ứng dụng của bạn dựa trên javascript để nhanh chóng cho người dùng cuối, bạn phải thử nghiệm trên tất cả các nền tảng và đảm bảo bạn đáp ứng các mục tiêu hiệu suất hợp lý- nhưng trình duyệt javascript nhanh (ví dụ: chrome, opera, firefox 3.5), làm cho cuộc sống trở nên dễ chịu hơn nhiều trong khi phát triển nặng nề.

0

Điều quan trọng là người dùng của bạn sử dụng trình duyệt chậm nhất (tức là IE). Nếu bạn có thể giới hạn cơ sở người dùng của mình để chỉ bao gồm một số trình duyệt nhất định, bạn có thể tăng mức sử dụng JavaScript cho phù hợp cùng với nó.

+0

Có thể yêu cầu người dùng sử dụng một trình duyệt khác cho một ứng dụng cụ thể. Hầu hết các nhà phát triển Flash không ngại ngần yêu cầu một plugin. – stesch

0

Động cơ javascript nhanh nhất là gì?

V8

Liệu nó thực sự quan trọng?

Không

....

Vâng nó phụ thuộc. Với ai? Là người dùng cuối cùng, nó có vấn đề, tôi muốn có một trình duyệt với tất cả mọi thứ nhanh nhất có thể.

Là nhà phát triển, không nên trừ khi bạn muốn quay lại "Chạy tốt hơn với ...." Bạn nên nhắm mục tiêu các trình duyệt quan trọng nhất trên mạng.

Có lẽ bạn nên xem xét thêm chi tiết hơn cho câu hỏi của mình cho đến bây giờ nó hầu như không liên quan đến lập trình.

1

Hãy nhớ rằng không phải tất cả Javascript đều chạy trong trình duyệt.

Ví dụ: nếu bạn đang chạy CouchDB, chế độ xem được triển khai dưới dạng hàm Javascript.

Apache Sling cho phép tập lệnh phía máy chủ trong Javascript.

Tôi biết các công cụ BPM sử dụng Javascript để viết các bước mô hình.

Danh sách Wikipedia nhiều hơn server side java applications.

Trong những môi trường này, nơi mà công cụ Javascript nằm dưới sự kiểm soát của bạn và không phải là thứ gì đó trong trình duyệt của người dùng, thì chắc chắn bạn sẽ quan tâm đến hiệu suất.

Mặt khác, nhiều trong số này được kết hợp chặt chẽ với triển khai Javascript cụ thể. Nó không xuất hiện như thể bạn có thể dễ dàng (ví dụ) trao đổi SpiderMonkey cho V8 trong CouchDB.

1

Ok phải kêu gọi về chủ đề này mặc dù cũ của nó.

Có tất nhiên điều quan trọng là tốc độ của công cụ Javascript của bạn, đó là nếu bạn đang tạo trò chơi javascript hoặc hoạt ảnh 3D với webGL.

Và không có bạn không phải hỗ trợ Trình duyệt chậm nhất để tạo trò chơi thành công. Tất cả những gì cần phải làm là bạn chỉ cho người dùng tiềm năng trực tiếp những gì bạn cho là một trình duyệt tốt sẽ được sử dụng trên trang web của bạn.

Ngoài ra cùng với bất kỳ cần điều khiển nào vào chương trình chuyển đổi khóa bạn có thể nghĩ là hữu ích khi chơi trò chơi của bạn nếu nó yêu cầu Gamepad.

Trong người dùng Ý kiến ​​của tôi cần phải được kéo theo đôi khi để một cái gì đó tốt hơn so với Internet Explorer thần khủng khiếp, và bây giờ ngay cả IE9 và hỗ trợ hầu hết các thẻ HTML5. mặc dù 9 rất hạn chế.

Vì vậy, hãy khởi động động cơ, chương trình như thể bạn có mục đích, và không để bất cứ ai nói cho bạn biết tốc độ không quan trọng. trong trò chơi phát triển trò chơi, nó quan trọng trong thời gian lớn! Oh và cho đến nay tôi thấy CraftyJS và ThreeJS là hai trong số các chương trình javascript tốt nhất, và Xây dựng 2 và Monkey X cho phép bạn tạo các trò chơi HTML5 khá dễ dàng với Monkey X cho phép mã hóa đầy đủ và có thể biên dịch sang các nền tảng khác nếu bạn trả tiền cho nó. Nhưng mục tiêu HTML5 và cửa sổ là miễn phí với Monkey X.

Và đối với trình chỉnh sửa văn bản tốt cho HTML5, Javascript, CSS3 cần, nổi bật, mã gấp và nhiều tính năng được RJ TextED, thậm chí miễn phí!

+0

Tôi hy vọng công cụ JS không thực thi WebGL - trình kết xuất trên thẻ đồ họa của tôi có nghĩa vụ phải làm điều đó. Btw, CraftyJS và ThreeJS không phải là các công cụ JS, chúng là các công cụ trò chơi (được viết bằng JS). – Bergi

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