2009-07-21 39 views

Trả lời

81

Từ đầu ra của java -X:

 
    -Xloggc:<file> log GC status to a file with time stamps 

dự liệu here:

-Xloggc: filename

Thiết lập tập tin mà sự kiện GC tiết thông tin nên được chuyển hướng để đăng nhập. Thông tin được ghi vào tệp này tương tự như đầu ra của -verbose:gc với thời gian trôi qua kể từ sự kiện GC đầu tiên trước mỗi sự kiện được ghi nhật ký. Tùy chọn -Xloggc ghi đè -verbose:gc nếu cả hai được cung cấp cùng một lệnh java.

Ví dụ:

 -Xloggc:garbage-collection.log

Vì vậy, đầu ra trông giống như sau:

 
0.590: [GC 896K->278K(5056K), 0.0096650 secs] 
0.906: [GC 1174K->774K(5056K), 0.0106856 secs] 
1.320: [GC 1670K->1009K(5056K), 0.0101132 secs] 
1.459: [GC 1902K->1055K(5056K), 0.0030196 secs] 
1.600: [GC 1951K->1161K(5056K), 0.0032375 secs] 
1.686: [GC 1805K->1238K(5056K), 0.0034732 secs] 
1.690: [Full GC 1238K->1238K(5056K), 0.0631661 secs] 
1.874: [GC 62133K->61257K(65060K), 0.0014464 secs] 
+1

cảm ơn bạn rất nhiều vì câu trả lời tuyệt vời – djangofan

+0

java --Xloggc: firstgen.log -Xloggc: secondgen.log dường như không hoạt động bằng cách này. – djangofan

+0

Ngoài ra, điều này không tăng đầu ra, như tôi mong đợi. Không có chi tiết bổ sung sau khi sử dụng các đối số này: -Xloggc: gc.log -XX: -PrintGCDetails – djangofan

34

Nếu ngoài bạn muốn đường ống đầu ra vào một tập tin riêng biệt, bạn có thể làm:

Trên Sun JVM:

-Xloggc:C:\whereever\jvm.log -verbose:gc -XX:+PrintGCDateStamps 

ON một IBM JVM:

-Xverbosegclog:C:\whereever\jvm.log 
+4

Nếu bạn sử dụng -Xloggc, bạn không cần -verbose: gc. – tfb785

6

Để thêm vào các câu trả lời ở trên, có một bài viết tốt: Useful JVM Flags – Part 8 (GC Logging) bởi Patrick Peschlow.

Một đoạn trích ngắn gọn:

Cờ -XX:+PrintGC (hoặc bí danh -verbose:gc) kích hoạt chế độ khai thác gỗ “đơn giản” GC

Theo mặc định các bản ghi GC được ghi vào thiết bị xuất chuẩn. Với -Xloggc:<file>, chúng tôi có thể chỉ định tệp đầu ra. Lưu ý rằng cờ này cũng ngầm đặt -XX:+PrintGC-XX:+PrintGCTimeStamps.

Nếu chúng tôi sử dụng -XX:+PrintGCDetails thay vì -XX:+PrintGC, chúng tôi kích hoạt chế độ ghi nhật ký "chi tiết" khác nhau tùy thuộc vào thuật toán GC được sử dụng.

Với -XX:+PrintGCTimeStamps dấu thời gian phản ánh thời gian thực được chuyển qua giây kể từ khi bắt đầu JVM được thêm vào mọi dòng.

Nếu chúng tôi chỉ định -XX:+PrintGCDateStamps mỗi dòng bắt đầu với ngày và giờ tuyệt đối.

1

Java 9 & Unified JVM Logging

JEP 158 giới thiệu một hệ thống đăng nhập thông thường cho tất cả các thành phần của JVM mà sẽ thay đổi (và IMO đơn giản hóa) cách khai thác gỗ làm việc với GC. JEP 158 bổ sung thêm một tùy chọn dòng lệnh mới để kiểm soát khai thác gỗ từ tất cả các thành phần của JVM:

-Xlog 

Ví dụ, tùy chọn sau đây:

-Xlog:gc 

sẽ đăng nhập thông điệp tagged with gc thẻ sử dụng info mức đến stdout. Hoặc cái này:

-Xlog:gc=debug:file=gc.txt:none 

sẽ đăng các thông điệp được gắn thẻ với gc thẻ sử dụng debug mức vào một tập tin gọi là gc.txt không có đồ trang trí. Để thảo luận chi tiết hơn, bạn có thể kiểm tra các ví dụ trong trang JEP.

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