2010-10-29 22 views
19

Dường như chỉ có một số ít các JVM đang triển khai Real-Time Specification for Java (RTSJ). Hệ thống thời gian thực Sun/Oracle Java trên $ 6000 và WebSphere thời gian thực của IBM là trên $ 7000, vì vậy nhiều nhà phát triển Java có thể không bao giờ có cơ hội sử dụng một trong hai hệ điều hành này. JRockit của Oracle có vẻ là một thực thi Java miễn phí trong thời gian thực với hành vi có thể dự đoán được, mặc dù tôi không chắc chắn, vì tài liệu của họ khá nặng về ngôn ngữ tiếp thị. Các JVM thời gian thực nhỏ hơn khác có vẻ mạo hiểm bởi vì được phát triển bởi các tổ chức nhỏ và có cơ sở người dùng nhỏ hơn.JVM thời gian thực (RTSJ) nào được ưa thích nhất?

JVM thời gian thực nào được ưu tiên? Nhà phát triển nào được các nhà phát triển sử dụng, đáng tin cậy và yêu thích nhất?

+0

Sun JVM có một phiên bản thử nghiệm, bạn cũng có thể áp dụng cho việc sử dụng học tập, nếu bạn đang làm một số dự án nghiên cứu. JRockit không giống như một hệ thống RTSJ, nó không thực hiện nó. Có lẽ nó sẽ cung cấp cho một số tính năng của thời gian thực mềm, như thu gom rác xác định, nhưng có vẻ như đó là tất cả những gì nó có. Yêu cầu về độ trễ của bạn là gì? Nếu nó không nhỏ hơn ~ 200 micro giây, nó có thể đạt được ngay cả khi không có JRT. – Stas

+1

Trên thực tế, bằng cách sử dụng OpenJDK trên Ubuntu, tôi đã đo một lượng lớn jitter trong việc bỏ phiếu. Với thời gian gửi/nhận chuyến đi khứ hồi ~ 17ms, có khoảng cùng số lượng jitter trong một số lượng cuộc thăm dò tương đối nhỏ. Rõ ràng phần cứng có một trò chơi lớn trong jitter, và yêu cầu của tôi sẽ khác nhiều so với yêu cầu của người khác, vì vậy tôi muốn tránh xa họ và nhận được câu trả lời chung về JVM thời gian thực. Tôi hy vọng tìm hiểu và cung cấp thông tin về phát triển Java thời gian thực bằng cách tìm kiếm một JVM đáng tin cậy, có thể dự đoán trước được. – Matt

+1

Việc bỏ phiếu tương tự được thực hiện trong tinh khiết C chỉ sản xuất ~ 10% jitter. – Matt

Trả lời

28

Cập nhật (tháng 3 năm 2012): Oracle dường như đã lặng lẽ tháo rời nhóm phát triển JavaRTS của họ.

Không có câu trả lời hay cho câu hỏi này. Chắc chắn không đủ khối lượng quan trọng để nói rằng có một JVM RT phổ biến nhất hiện nay.

Hệ thống phòng thủ của Hoa Kỳ Tôi biết sử dụng JavaRTS, WebSphere RT và PERC của IBM. Nền tảng hàng không sử dụng aicas JamaicaVM. Hầu hết những người này không quá lo lắng về chi phí cấp phép, cho đến nay. Họ lo ngại bởi rủi ro chương trình cao hơn nhiều. Tôi đã làm việc với một số các chương trình này, và tôi thấy rằng các sản phẩm có chất lượng cao, và có sự hỗ trợ (đôi khi bất thường) từ các nhà cung cấp.

Nhiều nhà cung cấp đã tập trung vào các khách hàng hoặc miền cụ thể và thiết kế của họ cơ sở hạ tầng hỗ trợ thứ hai có xu hướng giảm phù hợp với điều đó. Nếu bạn có một hồ sơ ứng dụng cụ thể trong tâm trí, có lẽ chúng tôi có thể giúp bạn có được một câu trả lời tốt hơn.

Chi phí cấp phép cao mà bạn trích dẫn phản ánh người dùng kỳ vọng cao của các sản phẩm này và mật độ tương đối thấp của nhu cầu. Cộng đồng nhà phát triển (chẳng hạn như nó) cũng phân mảnh hơn vì các hệ thống có ràng buộc thời gian thực hoặc an toàn quan trọng thường có độ nhạy lớn hơn (quốc phòng, hàng không, SCADA) hoặc giá trị độc quyền được bảo vệ (ô tô) hoặc cả hai. Một diễn đàn tuyệt vời cho lý thuyết và thực hành Java thời gian thực là hàng năm JTRES conference, là một nhóm các nhà nghiên cứu và các nhà cung cấp hiểu biết kỹ thuật.

Có liên quan trên SO: Primitives-only in Java, who uses RTSJ.

0

Aonix đã sử dụng RTSJ nhiều nhất. Chúng có một loạt các giải pháp java thời gian thực từ CDC đến mức Java SE.

+0

Tại sao chúng được sử dụng nhiều nhất so với Java RTS của Sun, IBM, v.v.? Có phải vì Anoix Perc Raven của Atego "thỏa mãn mức độ quan trọng cao nhất, thậm chí Cấp A như được định nghĩa trong hướng dẫn an toàn phần mềm ANDO-178B theo yêu cầu của FAA cho các hệ thống trên không?" Chúng có đắt hơn không? Họ là người được chứng minh nhất? – Matt

+0

Bạn có một số bằng chứng định lượng được rằng Aonix (nay là Atego) được sử dụng nhiều nhất? – andersoj

+1

Cũng lưu ý rằng không phải tất cả các JVM của PERC đều tuân thủ hoàn toàn RTSJ. Điều này có thể không liên quan đến nhiều người dùng, nhưng những người ở Atego đã tự mình làm để có được khách hàng của họ những gì họ cần, và đi chệch khỏi RTSJ khi nó bị cản trở. Tôi đồng ý với điều đó, và các khách hàng khác nhau của họ mà tôi đã làm việc không có vấn đề gì. Tôi nghĩ công bằng khi nói rằng CTO tại Atego (và một nhà lãnh đạo kỹ thuật trong RT Java), có một số mối quan tâm đáng kể với thông số kỹ thuật của RTSJ. – andersoj

7

Đúng là chỉ có một vài máy ảo triển khai RTSJ. JavaRT của Oracle, WebSpere thời gian thực của IBM và aicas JamaicaVM, nhưng PERC từ Atego không phải là một trong số chúng, thậm chí không phải từ xa. PERC có một số phần mở rộng độc quyền cho lập trình thời gian thực thay thế. JRocket của Oracle cũng không phải là một VM thời gian thực.

Cả PERC và JamaicaVM, mặc dù cả hai đều từ các công ty nhỏ hơn IBM hoặc Oracle, đều có cơ sở người dùng đáng kể. Hầu hết các nhà phát triển ít quen thuộc hơn với PERC và JamaicaVM vì chúng được sử dụng chủ yếu cho các ứng dụng nhúng, không phải các ứng dụng máy tính để bàn hoặc máy chủ. JamaicaVM đang được sử dụng bởi các tập đoàn lớn như Boeing, Siemens, Zeiss, và Lockheed Martin và nó đã có mặt trên thị trường hơn mười năm.

Nếu bạn muốn dùng thử Đặc tả thời gian thực cho Java, bạn có thể tải xuống phần bổ sung cá nhân của JamaicaVM. Nó có thể được sử dụng trên bất kỳ nền tảng Linux nào trên mạng. Nó có sẵn từ "http://www.aicas.com/jamaica-pe.html" miễn phí.

JamaicaVM không chỉ hỗ trợ RTSJ, mà còn có bộ thu gom rác hoàn toàn ưu tiên. Điều này có nghĩa là người ta có thể viết mã thời gian thực mà không cần phải sử dụng khu vực bộ nhớ có phạm vi và bất tử. JamaicaVM cũng có một static hoặc trước thời hạn (AoT) trình biên dịch, do đó hiệu suất thời gian thực không bị ức chế bởi trình biên dịch JIT. Người dùng vẫn có thể sử dụng RealtimeThreads, RawMemoryAccess, AsyncEventHandlers và các tính năng khác của RTSJ để quảng bá lập trình thời gian thực.

3

Nếu bạn muốn thử sử dụng RTSJ, JamaicaVM được cung cấp miễn phí trong một phiên bản phi thương mại. Nó có sẵn cho Linux trên x86. Bạn có thể tìm thấy một tham chiếu đến điều này trên trang web của aicas: www.aicas.com.

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