2011-01-25 41 views
6

Có cách nào để đặt kích thước heap java tối đa theo chương trình thay vì làm đối số vm không?lập trình thiết lập kích thước heap java tối đa

Cái gì như:

System.getProperties().put("<heap variable>", "1000m"); 
+2

bản sao có thể có của [Cách tăng kích thước heap java theo chương trình] (http://stackoverflow.com/questions/2073869/how-to-increase-java-heap-size-programmatically) – miku

Trả lời

7

Không phải với bất kỳ Hotspot JVM. Các tham số heap JVM chỉ có thể được xác định trên dòng lệnh, và sau đó được cố định trong suốt vòng đời của JVM.

Với triển khai Java Hotspot, cách duy nhất để "thay đổi" kích thước heap của ứng dụng là khởi chạy lại nó trong một JVM mới với các tham số dòng lệnh khác nhau.

(Tôi mơ hồ nhớ lại rằng JVM từ một số nhà cung cấp khác làm cho phép một số thông số đống phải được thay đổi trong một JVM chạy. Có lẽ ai đó có thể làm rõ.)

0

Bạn cần phải hiểu sự khác biệt giữa không gian và JVM môi trường nó chạy. Tham số mà bạn đã đề cập (và bất kỳ tham số -X hoặc -XX nào khác) là môi trường được thiết lập được cung cấp bởi môi trường chạy JVM.

Trong máy Windows XP, HĐH Windows là bộ khởi tạo của JVM. Do đó JVM không thể thay đổi một tham số mà hệ điều hành đã cung cấp. Nó hợp lý.

@Stephen C, có thể bạn đã đúng về một số triển khai VM cung cấp tính năng này, nhưng tôi không chắc chắn.

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