Mặt trời JVM xuất nhật nhật ký chi tiết GC thành StdOut khi sử dụng arg sau.Nhật ký GC chi tiết Java
-verbose:gc
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
Tuy nhiên, tôi không muốn đầu ra trong StdOut và tôi thực sự không cần chi tiết cho từng GC đơn lẻ. Có thể truy cập dữ liệu được sử dụng cho các nhật ký này theo chương trình không? Tôi muốn có thể đăng nhập vào tệp nhật ký của riêng mình lượng bộ nhớ được phân bổ/thu thập và lý tưởng là kích thước đối tượng trung bình theo thời gian.
Cảm ơn cho việc này. Tôi đã hy vọng sẽ có một API để tôi có thể truy cập dữ liệu này trong thời gian chạy và ghi số liệu thống kê sau mỗi 5 phút về khối lượng dữ liệu được phân bổ, thu thập và được quảng cáo. – mchr
Rất nhiều thông tin liên quan đến việc thu thập rác được thực hiện thông qua JMX, mở 'jconsole' và kiểm tra các mbeans khác nhau mà JVM hiển thị. Có một số câu hỏi ở đây về SO liên quan đến JMX và GC là tốt. Nếu bạn hiểu tiếng Đức bài viết này và mã liên quan có chứa một số ý tưởng thú vị http://www.torsten-horn.de/techdocs/jmx-gc.htm – fvu
Khi JVM 1.6.0_34 bạn có thể có java xoay các bản ghi. '-XX: + Sử dụngGCLogFileRotation -XX: NumberOfGCLogFiles =
-XX: GCLogFileSize =' Lưu ý rằng tất cả ba tùy chọn là bắt buộc. các mẹo khác tại đây: http://jyates.github.io/2012/11/05/rolling-java-gc-logs.html –