Làm cách nào để chuyển hướng kết quả thu thập rác thải vào một tệp? Trang web của Sun cho thấy một ví dụ cho Unix nhưng nó không hoạt động cho Windows.Làm cách nào để chuyển hướng kết quả thu thập rác thải vào một tệp?
Trả lời
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ệnhjava
.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]
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
Nếu bạn sử dụng -Xloggc, bạn không cần -verbose: gc. – tfb785
Để 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
và -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.
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.
- 1. Bộ nhớ lớn không phải rác thải được thu thập
- 2. Buộc thu gom rác thải
- 3. Rác thu thập cam kết trong git
- 4. Thông báo thu gom rác thải?
- 5. đa và thu gom rác thải
- 6. Làm thế nào để hướng dẫn PowerShell thu thập rác các đối tượng .NET như XmlSchemaSet?
- 7. Java không thu thập bộ nhớ rác
- 8. Thuật toán thu thập rác thải "thời gian chính xác" tồn tại?
- 9. Nhân viên nền và thu gom rác thải?
- 10. Làm thế nào để giảm sản lượng rác thải?
- 11. Làm cách nào để thực thi các lệnh Bash và thu thập kết quả từ Java?
- 12. Python: hành vi thu gom rác thải với ctypes
- 13. Có thể ngừng thu gom rác thải .NET không?
- 14. Thuật toán thu thập rác JVM
- 15. Làm thế nào tôi có thể xác định đối tượng nào đang được thu thập bởi bộ thu gom rác?
- 16. Khi nào một đối tượng đủ điều kiện thu gom rác thải?
- 17. jQuery AJAX: thu thập nhiều kết quả không đồng bộ
- 18. Trong Java, làm thế nào là một mảng các đối tượng rác thu thập được?
- 19. Làm thế nào để điều tra thu thập quá java rác
- 20. làm cách nào để chuyển hướng kết quả đầu ra của nosetests đến một textfile?
- 21. Thu thập rác php trong khi tập lệnh chạy
- 22. Làm cách nào để chuyển hướng đầu ra của DBMS_OUTPUT.PUT_LINE tới một tệp?
- 23. Làm cách nào để thu thập toàn bộ Wikipedia?
- 24. Cách thu gom rác thu thập các đối tượng tự tham chiếu?
- 25. Đối tượng không thu gom rác thải, nhưng không chứa gcroots
- 26. Khi nào để thu gom rác
- 27. Làm cách nào để chuyển tệp vào Thùng rác bằng PowerShell?
- 28. Có thể để có được OutOfMemoryError vì thu gom rác thải quá chậm?
- 29. HĐH có thể ngừng quá trình Java từ việc thu gom rác thải không?
- 30. Là một thùng rác đối tượng nếu nó chỉ được tham chiếu từ rác thải?
cảm ơn bạn rất nhiều vì câu trả lời tuyệt vời – djangofan
java --Xloggc: firstgen.log -Xloggc: secondgen.log dường như không hoạt động bằng cách này. – djangofan
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