Điều này thực sự được liên kết với HotSpot và các giá trị tùy chọn mặc định ( Tùy chọn VM HotSpot ) khác nhau giữa cấu hình máy khách và máy chủ.
Từ Chương 2 của whitepaper ( Kiến trúc công cụ hiệu suất Java HotSpot ):
JDK bao gồm hai hương vị của VM - cung cấp phía máy khách và VM được điều chỉnh cho các ứng dụng máy chủ. Hai giải pháp này chia sẻ cơ sở mã môi trường thời gian chạy Java HotSpot, nhưng sử dụng các trình biên dịch khác nhau phù hợp với các đặc tính hiệu năng riêng biệt của máy khách và máy chủ. Những khác biệt này bao gồm chính sách biên dịch và mặc định heap.
Mặc dù Máy chủ và Máy khách VM tương tự nhau, Máy chủ VM đã được điều chỉnh đặc biệt để tối đa hóa tốc độ hoạt động cao nhất. Nó được thiết kế để thực thi các ứng dụng máy chủ chạy dài, cần tốc độ hoạt động nhanh nhất có thể hơn thời gian khởi động nhanh hoặc dấu chân bộ nhớ thời gian chạy nhỏ hơn.
Trình biên dịch VM máy khách phục vụ như là một bản nâng cấp cho cả trình biên dịch VM cổ điển và trình biên dịch chỉ trong thời gian (JIT) được sử dụng bởi các phiên bản trước của JDK. Client VM cung cấp hiệu năng thời gian chạy được cải thiện cho các ứng dụng và applet. Máy khách Java HotSpot đã được điều chỉnh đặc biệt để giảm thời gian khởi động ứng dụng và dung lượng bộ nhớ, làm cho nó đặc biệt phù hợp với môi trường máy khách. Nói chung, hệ thống máy khách tốt hơn cho GUI.
Vì vậy, sự khác biệt thực sự cũng là ở cấp độ trình biên dịch:
Trình biên dịch VM máy khách không cố thực hiện nhiều tối ưu hóa phức tạp hơn được trình biên dịch thực hiện trong Server VM, nhưng đổi lại, nó cần ít thời gian hơn để phân tích và biên dịch một đoạn mã. Điều này có nghĩa là VM máy khách có thể khởi động nhanh hơn và yêu cầu dung lượng bộ nhớ nhỏ hơn.
Server VM chứa trình biên dịch thích ứng nâng cao hỗ trợ nhiều loại tối ưu hóa giống nhau được thực hiện bằng cách tối ưu hóa trình biên dịch C ++, cũng như một số tối ưu hóa không thể thực hiện được bởi các trình biên dịch truyền thống, chẳng hạn như xâm lấn qua các yêu cầu phương thức ảo. Đây là một lợi thế cạnh tranh và hiệu suất so với trình biên dịch tĩnh. Công nghệ tối ưu hóa thích ứng rất linh hoạt trong cách tiếp cận của nó, và thường vượt trội hơn cả các kỹ thuật phân tích và biên dịch tĩnh tiên tiến.
Lưu ý: Việc phát hành bản cập nhật jdk6 10 (xem Cập nhật ghi chú phát hành: Thay đổi trong 1.6.0_10 ) đã cố gắng cải thiện thời gian khởi động, nhưng vì một lý do khác với các tùy chọn hotspot, được đóng gói khác với hạt nhân nhỏ hơn nhiều.
G. Demecki chỉ ra trong các ý kiến rằng trong các phiên bản JDK 64 bit, -client
tùy chọn này bị bỏ qua trong nhiều năm.
Xem lệnh Windowsjava
:
-client
Chọn máy khách Java HotSpot Client.
Một JDK có khả năng 64 bit hiện đang bỏ qua tùy chọn này và thay vào đó sử dụng máy chủ Java Hotspot Server VM .