2013-12-13 17 views
7

Tôi nhận thấy rằng mỗi bộ sưu tập rác thải trẻ với java 7 mất trung bình 10 mili giây so với java 6. Tôi đang sử dụng 1.6.0_311.7.0_21. Cấu hình vẫn không thay đổi, không có phần cứng, lập luận JVM là:Bộ sưu tập rác thải còn bị tạm dừng với java 7 vs java 6

-server -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+TieredCompilation -XX:+AggressiveOpts -Xms1g -Xmx1g -XX:MaxNewSize=256m -XX:NewSize=256m 
  • Java 7:
 
S0C S1C S0U S1U  EC  EU  OC   OU  PC  PU YGC  YGCT FGC FGCT  GCT 
26176.0 26176.0 3531.6 0.0 209792.0 21648.8 786432.0 86777.6 49472.0 49350.1  82 1.830 0  0.000 1. 
  • Java 6
 
S0C S1C S0U S1U  EC  EU  OC   OU  PC  PU YGC  YGCT FGC FGCT  GCT 
26176.0 26176.0 0.0 1210.5 209792.0 95873.4 786432.0 65327.1 35968.0 35891.2  83 0.620 0  0.000 0.620 

Tôi cũng đã xem từng cá nhân lần, và với java 6, mỗi YGC mất ~ 10ms so với java 7 là 20ms. Có điều gì đó thay đổi giữa phiên bản 6 và 7 có thể giải thích hành vi này không?

EDIT: Tôi nhận thấy java 7 chạy ở chế độ 64 bit, trong khi java 6 sử dụng JVM 32 bit, điều đó có thể giải thích sự khác biệt không?

Cảm ơn

+0

Tôi nghi ngờ kích thước của thế hệ eden và thế hệ trẻ khác nhau theo mặc định và điều này có thể thay đổi loại hành vi này. Bạn có thể in các kích thước thực tế không? –

+0

Thuật toán khác nhau hoặc các tham số khác nhau. –

Trả lời

2

Mặc định -XX:NewRatio cho Java 6 là 8 nhưng đối với Java 7 nó là 2. vì vậy trong java 6 kích thước của thế hệ trẻ là ít hơn java 7 do đó sự khác biệt tôi cảm thấy.

Vì thời gian thu gom rác từ thành phố tỷ lệ thuận với thành phố lớn như thế nào. nếu kích thước thành phố tăng lên do đó thời gian.

+0

Tôi đang thiết lập kích thước của thế hệ mới qua -XX: MaxNewSize = 256m -XX: NewSize = 256m, vì vậy tôi mong đợi nó sẽ giống nhau cho cả hai phiên bản – punx120

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