2010-09-08 46 views
22

Tôi sử dụng Eclipse và Windows 64 bit và phát triển các ứng dụng Java trên máy tính để bàn. Cho đến nay, tôi chỉ sử dụng JDK 32 bit, nhưng có lý do nào để thay đổi sang JDK 64-bit để phát triển Java không?Tại sao tôi nên sử dụng JDK 64 bit so với phiên bản 32 bit?

+0

Bạn đã thực hiện bất kỳ nghiên cứu nào về điều này trước khi yêu cầu chúng tôi đưa ra ý kiến? kết quả nghiên cứu của bạn là gì? – t0mm13b

+2

Tôi đã tìm thấy chủ đề này hữu ích: http://stackoverflow.com/questions/783662/java-32-bit-vs-64-bit-compatibility –

Trả lời

19

Không, đối với các hoạt động phát triển của bạn, 32 bit có thể là đủ.

Các JVM mới nhất hỗ trợ nén con trỏ, nhưng ngược lại, phiên bản 64 bit của ứng dụng yêu cầu nhiều bộ nhớ hơn để chạy. Chỉ sử dụng 64 bit nếu ứng dụng của bạn cần phải giải quyết nhiều bộ nhớ hơn (32 bit nên địa chỉ 4 Gb, nhưng cân nhắc hệ điều hành đôi khi làm cho điều này ít hơn).

Ngoài việc lãng phí một chút bộ nhớ, phiên bản 64 bit không phải là vấn đề, nhưng theo giai thoại, tất cả các sự cố không thể giải thích được của JVM thường đá mà tôi nghe đều có trong phiên bản 64 bit. Nó có thể là hệ điều hành hoặc các yếu tố khác, nhưng nếu bạn không có một lý do cho 64 bit, tại sao đẩy may mắn của bạn?

+2

32 bit chỉ có thể truy cập 2GiB bộ nhớ trên Windows. – Monstieur

+0

@Locutus Trừ khi chúng có địa chỉ lớn. – OMGtechy

+1

Câu trả lời này hiện đã chính xác 6 tuổi và vẫn là lần truy cập đầu tiên trên google. Erickson, bạn có phiền khi cập nhật câu trả lời của mình không? (Ngay cả khi nó chỉ là để nói rằng những gì bạn nói vẫn giữ trong năm 2016! Mặc dù tôi bằng cách nào đó nghi ngờ nó.) –

9

Lý do chính sẽ là nếu bạn muốn viết một ứng dụng có khả năng sử dụng lượng bộ nhớ lớn (ví dụ: trên 4GB hoặc bất kỳ giới hạn cho mỗi quá trình nào trên hệ điều hành của bạn).

+1

Muộn cho bữa tiệc, nhưng đối với bất kỳ ai khác tình cờ khi chủ đề này: Hệ điều hành 32-bit có tối đa 4GB, chính xác, nhưng với PAE được cài đặt có tổng dung lượng lên tới 32GB và tối đa 3GB cho mỗi quy trình giới hạn - quá đủ trong môi trường servlet, ví dụ. 2011 và vẫn không thể nhìn thấy một trường hợp sử dụng phổ biến cho một hệ điều hành máy chủ 64-bit bên ngoài của doanh nghiệp; rất ít nếu có lợi ích về hiệu suất và mức tiêu thụ bộ nhớ cao hơn, không cảm ơn ... – virtualeyes

+0

Xin lỗi ... Tôi biết điều này cũ nhưng ... bạn có nói năm 2011 và vẫn không thể thấy trường hợp sử dụng chung cho hệ điều hành 64 bit bên ngoài doanh nghiệp? Hầu hết thời gian máy tính xách tay của tôi có bộ nhớ 16GB, 64bit giành được 7 là sử dụng 7-10GB bộ nhớ. Tôi có nhiều môi trường phát triển mở nhiều lần (Eclipse, Visual Studio 2010/2012), trình duyệt, trình chỉnh sửa hình ảnh, v.v. Tôi ghét phải quay lại máy tính 32 bit vì tôi chỉ có thể chạy một vài chương trình mà không bắt đầu Lỗi trang. – Jack

+1

Ngoài ra, nếu bạn đang nói về x86/x86-64 nó không phải là quá rõ ràng. Vì vòm x86-64 có nhiều thanh ghi, vv, vì vậy bạn cũng có thể nhận được một số lợi ích hiệu suất sử dụng 64 bit có thể bù đắp các yêu cầu bộ nhớ lớn hơn, v.v. Nếu bạn đang chạy trên một cái gì đó giống như SPARC, thì bạn don ' t cần 64 bit trừ khi bạn cần không gian bộ nhớ. – Mike

-1

Hãy thử điều này:

public class Benchmark { 
    public static void main(String args[]) { 
     long time = System.currentTimeMillis(); 
     for (int a = 1; a < 900000000; a++) { 
      for (int b = 1; b < 20; b++) { 
      } 
     } 
     long time2 = System.currentTimeMillis() - time; 
     System.out.println("\nTime counter stopped: " + time2); 
    } 
} 

Trong 32 và 64 bit và cười nhạo sự khác biệt.

+0

Điều gì đang xảy ra ở đây? Điều này rất quan trọng. Tôi đã thử nghiệm điều này với các phiên bản 32 và 64 bit của JDK 8. Tôi hình phiên bản 64 bit có thể xác định tốt hơn những gì cấu thành công việc vô dụng, bởi vì nó dường như không làm vòng lặp nào cả. – agent154

+5

Tại sao bạn không chỉ cho chúng tôi biết sự khác biệt là gì? – EnvisionAndDevelop

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