2013-08-20 22 views
15

HotSpot's tiered compilation sử dụng trình thông dịch cho đến khi ngưỡng yêu cầu (đối với phương thức) hoặc lặp lại (đối với vòng lặp) sẽ kích hoạt trình biên dịch máy khách với tự định cấu hình. Việc biên dịch máy khách được sử dụng cho đến khi một ngưỡng của các lời gọi hoặc các lần lặp lại kích hoạt một trình biên dịch máy chủ.Điều khiển CompileThreshold, Tier2CompileThreshold, Tier3CompileThreshold và Tier4CompileThreshold là gì?

Printing HotSpot's flags hiển thị các giá trị cờ sau bằng -XX: + TieredCompilation.

intx CompileThreshold  = 10000 {pd product}   
intx Tier2CompileThreshold = 0  {product}   
intx Tier3CompileThreshold = 2000 {product}   
intx Tier4CompileThreshold = 15000 {product}   

Có quá nhiều cờ cho chỉ một trình biên dịch máy khách và máy chủ. Những trình biên dịch nào được kiểm soát bởi những lá cờ này? Nếu không phải máy khách và máy chủ, mục đích của các trình biên dịch bổ sung là gì?

Có phải CompileThreshold và Tier2CompileThreshold bị bỏ qua trong trường hợp này không? Điều khiển Tier3CompileThreshold khi một trình biên dịch máy khách được kích hoạt là gì? Điều khiển Tier4CompileThreshold khi một trình biên dịch máy chủ được kích hoạt là gì?

Trả lời

18

Nhận xét trong advancedThresholdPolicy.hpp thảo luận về các cấp trình biên dịch khác nhau và các ngưỡng. Xem tệp đó để thảo luận sâu hơn.

Hệ thống hỗ trợ 5 mức độ thực hiện:

  • Tier 0 - thông dịch viên
  • Tier 1 - C1 với đầy đủ tối ưu hóa (không profiling)
  • Tier 2 - C1 với gọi và backedge quầy
  • Bậc 3 - C1 có hồ sơ đầy đủ (cấp 2 + MDO)
  • Bậc 4 - C2

C1 là trình biên dịch máy khách. C2 là trình biên dịch máy chủ.

Trong trường hợp thông thường, quá trình biên dịch sẽ xuất hiện: 0 → 3 → 4. Các trường hợp điển hình được sử dụng dựa trên độ dài hàng đợi C1 và C2. Cấp 2 được sử dụng khi độ dài hàng đợi C2 quá dài để phương thức có thể thực thi nhanh hơn khoảng 30% cho đến khi C2 có thể xử lý thông tin lược tả. Nếu phương pháp được xác định là tầm thường, thì nó được biên dịch với Cấp 1 vì nó sẽ tạo ra cùng mã như Tier 4.

Ngưỡng được điều chỉnh động dựa trên độ dài của hàng đợi C1 và C2.

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