Việc triển khai JVM có thể khác với cách chúng thực hiện biên dịch, tối ưu hóa, thu thập rác, hỗ trợ nền tảng, phiên bản Java được hỗ trợ, v.v. Tất cả đều phải đáp ứng tập hợp các tính năng và hành vi để nó thực thi các bytecode Java của bạn một cách chính xác.
Như bạn đã chỉ ra, sự khác biệt chính có xu hướng trong giấy phép. Các khác biệt phi kỹ thuật khác có xu hướng nằm trong các tùy chọn hỗ trợ miễn phí/trả phí, tích hợp với các công nghệ khác (thường là các máy chủ J2EE) và truy cập vào mã nguồn.
Lưu ý: Trong khi máy chủ J2EE chạy trên JVM, một số máy chủ có các công cụ tích hợp để theo dõi, phân tích và tinh chỉnh hiệu suất JVM.
Theo như sự khác biệt về kỹ thuật, những sự khác biệt này ít phát triển hơn trong những năm qua. Ngày xửa ngày xưa, JVM của IBM và JRockit có hiệu năng vượt trội hơn nhiều so với việc thực hiện Sun. Điều này là do sự khác biệt đáng kể trong các loại tối ưu hóa thời gian chạy, sự khác biệt trong thu gom rác thải và sự khác biệt về mã nguồn gốc (và bao nhiêu lớp gốc mà các lớp khác nhau sử dụng). Những khác biệt về hiệu suất này không còn đáng kể nữa.
Một số JVM cũng bao gồm hoặc tích hợp với các công cụ chẩn đoán và giám sát. JRockit bao gồm một bộ công cụ để theo dõi hiệu suất JVM của bạn. Sun cung cấp các công cụ dựa trên JMX khác nhau với các tính năng chồng chéo để làm tương tự. IBM Websphere từng có một thời gian bao gồm một bộ công cụ tương tự cho toàn bộ máy chủ ứng dụng J2EE của họ (không chắc chắn nếu họ vẫn làm, nhưng tôi cho rằng điều đó vẫn đúng) ...
Một số JVM nguồn mở có xu hướng có hiệu suất chậm hơn một chút vì chúng đã được phát triển lại từ đầu. Như vậy, họ đã bắt kịp hơn một chút để làm. Cuối cùng tôi đã kiểm tra khoảng 2 năm trước, Blackdown chậm hơn đáng kể (1.5x-2x?) So với Sun JVM. Nó cũng hơi chậm so với các phiên bản Java được hỗ trợ.
Nguồn
2009-04-14 14:24:44
Khi ai đó buộc phải sử dụng JRockit trong hơn 5 năm nay, tôi sẽ nói rằng tổng thể nó không nhanh hơn Hotspot, nhưng nó chắc chắn không mạnh mẽ. Họ hy sinh độ tin cậy cho tốc độ, và kết thúc với không có gì. – erickson
@erickson, Là một người đã tự nguyện sử dụng JRockit trong hơn 5 năm nay, tôi có thể nói rằng trải nghiệm của bạn không phổ biến. JRockit đã tiết kiệm ít nhất một lần với công cụ phát hiện rò rỉ bộ nhớ của nó là tốt. :) Tôi đã không có thêm bất kỳ sự cố nào với nó so với Sun VM (mặc dù đã có 1 hoặc 2). – jsight