Có hai mục bổ sung tôi có thể nhớ tay:
- Biên soạn JIT
- Thực hiện luồng
Về mặt thời gian thực, khả năng dự đoán hiệu suất có lẽ là yếu tố quan trọng nhất; Đó là lý do tại sao một chu trình GC không thể đoán trước làm cho Java không phù hợp với thời gian thực.
JIT cung cấp các hiệu suất được cải thiện, nhưng sẽ khởi động vào một lúc nào đó sau khi chương trình đang chạy, lấy một số tài nguyên và thay đổi tốc độ thực hiện của hệ thống. Nó cũng có thể xảy ra một lần nữa ở giai đoạn sau, nếu VM tin rằng nó có thể thực hiện công việc "tốt hơn" tại thời điểm đó.
Theo như phân luồng: Tôi không nhớ rõ vào thời điểm này nếu đây là một phần của thiết kế ngôn ngữ hoặc chỉ là một triển khai rất phổ biến, nhưng Java thường không cung cấp công cụ nào để kiểm soát chính xác việc thực hiện luồng; Ví dụ, trong khi có 10 "ưu tiên" được chỉ định cho các luồng, thì không có yêu cầu nào VM thực sự xem xét các ưu tiên này. Các toán tử để dừng và chuyển đổi các luồng cũng không được xác định hoặc không được hệ thống tuân thủ chặt chẽ.
Có một số triển khai của JSR 1: Đặc tả thời gian thực cho Java - một đặc tả đã được phê duyệt vào năm 1998. Thông số kỹ thuật này giải quyết càng nhiều càng tốt các vấn đề khiến Java tiêu chuẩn không phù hợp với thời gian thực.
Có lẽ 5 năm trước, Sun (Bây giờ là Oracle) đã có RTSJ VM (Điều đó không bao giờ có tên, AFAIK); IBM đã có WebSphere Real Time; Và JamaicaVM là một giải pháp độc lập với nền tảng (?) Miễn phí. Googling những người ngày nay không mang lại nhiều.