2012-11-01 16 views

Trả lời

3

Định dạng chính xác của thư GC phụ thuộc vào phiên bản JVM và cài đặt JVM. Bạn có thể xem các mẫu tại Oracle tutorial about GC tuning.

DefNew là trình thu thập mặc định. Đó là một trong hai nối tiếp hoặc song song, cái nào được chọn phụ thuộc, một lần nữa, trên phiên bản/cài đặt JVM. Bạn có thể xem cài đặt mặc định của mình trong JDK 6 bằng cách sử dụng java -XX:+PrintCommandLineFlags -version. Trên hệ thống của tôi, nó in:

-XX:MaxHeapSize=1073741824 -XX:ParallelGCThreads=4 -XX:+PrintCommandLineFlags -XX:+UseParallelGC 

có nghĩa là GC song song là DefNew cho tôi. Bạn có thể kiểm tra điều này SO question và một trong các tài liệu tham khảo câu trả lời của nó this table, có thể nó sẽ giúp bạn.

CẬP NHẬT Mặc định Cũ Gen GC trong JDK 6 là ParallelOldGC, xem this enlightening pdf. Đặc biệt, bạn có thể thay đổi GC cũ sang phiên bản quét quét đồng thời mới hơn bằng cách sử dụng tùy chọn JV2 -XX:+UseConcMarkSweepGC JVM.

+0

tôi đã xem tài liệu này nhưng tôi không thể kết nối ví dụ DefNew, PSYoungGen hoặc ParOldGen với các nhà sưu tập cụ thể. Tôi có thể tìm thấy bảng này ở đâu? – user1329339

+0

Bởi vì các thế hệ không được kết nối với các nhà sưu tập cụ thể. Chỉ có một. Bạn cần đọc về mô hình GC thế hệ - và chạy Visual VM: http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html – duffymo

+0

@duffymo: Tôi hiểu rằng các thế hệ aren không kết nối với những người thu gom cụ thể. Sau khi cố gắng bản thân mình tôi nghĩ rằng tôi thấy rằng DefNew có nghĩa là Serial Collector, ParNew có nghĩa là CMS Collector và PSYoungGen có nghĩa là Parallel Collector trên thế hệ trẻ. Những gì tôi đang tìm kiếm là một bảng dịch cho tất cả các tùy chọn. – user1329339

1

Bạn có thể tìm các mẫu nhật ký GC cho tất cả các thuật toán thu thập rác của HotSpot JVM trong this article.

-XX:+PrintGCDetails phải được bật để xem mức chi tiết trong nhật ký GC.

2

trích dẫn cuốn sách "Java Hiệu suất" bởi Charlie Hunt, tên của không gian thế hệ trẻ được sử dụng trong các bản ghi GC thay đổi với GC sử dụng:

PSYoungGen => ParallelGC 
ParNew => CMS 
DefNew => SerialGC 

Tôi không chắc chắn về G1

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