2012-07-13 25 views
5

Xin chào mọi người, Tôi đã quan sát thấy trong khi thiết lập kích thước heap, người ta thích các giá trị 64,128,256,1024 ... Nếu tôi đưa ra một giá trị ở giữa các con số này (nói 500), thì jvm sẽ không chấp nhận giá trị đó? Tại sao những con số này lại quan trọng và được ưa thích? Tại sao chúng tôi cũng nâng cấp RAM trong mẫu này.mẫu thiết lập heap jvm

Hãy giúp tôi hiểu.

Cảm ơn trước, Habin

+0

Có thể là vì mọi người thích để có module bộ nhớ của họ on-board đầy đủ của JVM :) –

+1

Số vòng là khá. Theo như nâng cấp RAM, hãy thử tìm một mô-đun 743 MB. –

Trả lời

4

JVM sẽ chấp nhận bất kỳ giá trị, không có vấn đề với điều đó. Sử dụng 2^n giá trị chỉ là một "quy ước", sử dụng những người khác sẽ không có tác động tiêu cực trong thực tế.

0

Nếu nó sẽ không chấp nhận giá trị, kiểm tra xem bạn đặt một megabytes (M hoặc m) hoặc gigabytes (G hoặc g) sửa đổi sau khi số tiền.

Ví dụ: java -Xms500M -Xmx500M -jar myJavaProgram.jar

Ngoài ra, hãy nhìn vào link này.

2

Vâng, nếu bạn nghĩ về nó theo cách này:

  • 1 byte 8 bit

  • 1 kb = 1024 byte

  • 1 mb = 1024 kb

  • 1 gb = 1024 mb

  • ... và cứ thế ...

Nó không chỉ là 2^n. Những điều về bộ nhớ trong tính toán liên quan chặt chẽ đến số tám - số định nghĩa một byte trong hầu hết các máy tính hiện đại.

Lý do chính tại sao các bit được nhóm lại với nhau là đại diện cho các ký tự. Bởi vì bản chất nhị phân của tất cả mọi thứ máy tính, lý tưởng 'các cục' của các bit có sức mạnh là 2, tức là 1, 2, 4, 8, 16, 32.... (về cơ bản bởi vì họ luôn có thể được chia thành các gói nhỏ hơn bằng nhau (nó cũng tạo ra các phím tắt để lưu trữ kích thước, nhưng đó là một câu chuyện khác)). Rõ ràng 4 bit (nybble trong một số vòng tròn) có thể cho chúng ta 2^4 hoặc 16 ký tự duy nhất. Vì hầu hết các bảng chữ cái đều lớn hơn, 2^8 (hoặc 256 ký tự) là một lựa chọn phù hợp hơn.

Máy tồn tại đã sử dụng các byte có độ dài khác (đặc biệt là 7 hoặc 9). Điều này đã không thực sự sống sót chủ yếu bởi vì họ không phải là dễ dàng để thao tác. Bạn chắc chắn không thể chia một số lẻ thành một nửa, có nghĩa là nếu bạn chia các byte, bạn sẽ phải theo dõi độ dài của chuỗi bit.

Cuối cùng, 8 cũng là một số thuận tiện, nhiều người (tâm lý học và tương tự) cho rằng tâm trí con người thường có thể nhớ lại chỉ 7-8 thứ ngay lập tức (không chơi thủ thuật bộ nhớ).

+0

cảm ơn rất nhiều thông tin có giá trị. – Habin

0

Tại sao chúng tôi cũng nâng cấp RAM trong mẫu này.

Đó là do chip bộ nhớ/thẻ/có kích thước có công suất 2 byte. Và lý do cơ bản cho điều đó là nó làm cho các thiết bị điện tử đơn giản hơn. Và đơn giản hơn có nghĩa là rẻ hơn, đáng tin cậy hơn và (có thể) nhanh hơn.

0

Trừ quy ước không viết, nó cũng có tác động hiệu suất - tùy thuộc vào kiến ​​trúc của máy.

Ví dụ, nếu một máy dựa ternary, nó sẽ làm việc tốt hơn với một kích thước heap thiết lập một giá trị mà là một sức mạnh của 3.

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