Phiên bản trước của tôi, trong khi không phải là sai, là một sự đơn giản hóa quá mức.
Thay đổi từ 32 đến 64 bit sẽ không tự động làm cho ứng dụng của bạn chạy nhanh hơn, có thể trong một số trường hợp sẽ dẫn ngược lại. Trên mặt "phủ định" Thực hiện việc tham chiếu các con trỏ bộ nhớ trong JVM có thể mất nhiều thời gian hơn với các con trỏ 64 bit hơn 32 bit. Thu thập rác đầy đủ và nén của một đống 16 GB có thể mất nhiều thời gian hơn so với một đống 2 GB.
Về mặt tích cực: Có hướng dẫn xử lý 64 bit hiệu quả hơn các bit 32 bit. JVM 64 bit sẽ cho phép bạn có kích thước heap lớn hơn 2^32 lần so với, ít hơn một chút, 4 GB mà bạn có thể nhận được với 32 bit. (Nếu bạn đủ khả năng để mua số lượng RAM đó) Một số JVM có thể làm việc với các tham chiếu đã nén nếu bạn có kích thước heap nhỏ hơn 4 GB, cho bạn lợi thế của hướng dẫn 64 bit mà không phải trả giá tham chiếu 64 bit .
Nếu bạn có JVM tốt, tôi sẽ chuyển đến 64 bit bất kể kích thước heap, chỉ cần chuẩn bị rằng bạn có thể phải thực hiện một hit hiệu suất để có một đống thực sự lớn.
Không phải là một lợi ích, ít nhất là trên Windows, khả năng sử dụng nhiều bộ nhớ hơn khoảng 1,5 GB? Có một số giới hạn như vậy đối với một quá trình Java 32-bit. http://mystyleit.com/blogs/mystyleit/archive/2009/05/27/32bit-windows-memory-and-java.aspx – Jonik
Không phải là các JVM 64 bit mới nhất thông minh hơn một chút về việc gán tham chiếu? Tức là, chỉ sử dụng các tham chiếu 32 bit nếu nó không cần 64 bit đầy đủ. Tôi nghĩ tôi đọc ở đâu đó. –