2009-12-23 42 views
26

-Xms là để chỉ định kích thước heap ban đầu hoặc kích thước heap tối thiểu? Tôi thấy nhiều địa điểm có nhiều câu trả lời khác nhau. Một số giống như second answer here, nói rằng đó là cho đống ban đầu và một số giống như here nói rằng kích thước heap tối thiểu của nó. Hoặc có phải kích thước tối thiểu là kích thước ban đầu không?-Xms: Kích thước heap ban đầu hoặc kích thước heap tối thiểu?

+0

Tôi biết đây là một bài đăng cũ, nhưng bây giờ một số liên kết bị hỏng ... – CCovey

Trả lời

31

Kích thước heap ban đầu là kích thước heap tối thiểu. Nó sẽ không nhỏ hơn kích thước heap ban đầu.

Từ Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine:

Theo mặc định, máy ảo phát triển hoặc co lại đống ở mỗi bộ sưu tập để cố gắng giữ tỷ lệ free không gian sống vật tại mỗi bộ sưu tập trong một phạm vi cụ thể . Dải nhắm mục tiêu này được đặt thành một tỷ lệ phần trăm theo tham số -XX: MinHeapFreeRatio = và -XX: MaxHeapFreeRatio = và tổng kích thước được giới hạn bên dưới bằng -Xms trở lên bằng -Xmx.

+0

Theo mặc định trong máy của tôi lấy 10 gb kích thước heap tối đa vì chúng tôi có bộ nhớ 40 gb. Khi tôi đặt -Xms15g, kích thước tối đa là bao nhiêu? – junsid

11

Từ chạy java -X:

-Xms<size>  set initial Java heap size 
-Xmx<size>  set maximum Java heap size 
-Xss<size>  set java thread stack size 

Lưu ý rằng tùy chọn -x không đảm bảo tồn tại trên tất cả các máy ảo hoặc cư xử như nhau trên tất cả các máy ảo. Ví dụ -Xms có thể định dạng ổ đĩa cứng của bạn tùy thuộc vào máy ảo (nó sẽ không - nhưng nghiêm túc nói nó có thể :-) (gõ java của chính nó cung cấp cho sự giúp đỡ với dòng này: "-X in trợ giúp về các tùy chọn phi tiêu chuẩn") .

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