2011-09-26 16 views
5

Tôi đã xem xét câu trả lời cho how to get the min and max heap size settings of a JVM from within a Java program hữu ích, nhưng câu trả lời được chấp nhận dường như không trả lời một nửa câu hỏi. Về bản chất, tôi muốn báo cáo các cài đặt -Xms và -Xmx đã được sử dụng khi JVM được khởi chạy.Làm thế nào tôi có thể xác định kích thước heap tối thiểu JVM từ bên trong một ứng dụng java?

Trả lời

3

Nếu bạn muốn nhận các đối số JVM thực sự, điều này sẽ giúp bạn. Bạn có thể nhận tất cả đối số JVM với MXBean:

RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean(); 
List<String> arguments = RuntimemxBean.getInputArguments();

Bạn phải tìm đối số bắt đầu bằng "-Xm (s | x)". Vấn đề là giá trị có thể giống như "256M".

+0

Hoàn hảo cho nhu cầu của tôi. Chúng tôi chỉ muốn đăng nhập các cài đặt JVM khi khởi động để cung cấp một số ngữ cảnh khi xem lại nhật ký được liên kết với các báo cáo sự cố. Cảm ơn! – pamphlet

6

Đây là những ánh xạ giữa giá trị mà bạn đang tìm kiếm:

-Xmx=Runtime.getRuntime().maxMemory() 
-Xms=Runtime.getRuntime().totalMemory() 

Hope this helps.

+5

Tổng bộ nhớ giống với '-ms' khi khởi động nhưng có thể cao hơn sau khi bắt đầu chạy. –

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