Tôi đang cố gắng giải thích lý do JIT về các lý do Hotspot. Tôi chủ yếu quan tâm đến giai đoạn biên dịch mới nhất (trình biên dịch C2). JIT trong Java có dựa vào các xác nhận để tối ưu hóa không? Nếu đúng như vậy, tôi có thể tưởng tượng rằng có những ví dụ về mã có thể chạy nhanh hơn với các xác nhận được bật.Java, Assertions và JIT
Ví dụ, trong một đoạn mã như thế này:
static int getSumOfFirstThree(int[] array) {
assert(array.length >= 3);
return array[0] + array[1] + array[2];
}
- sẽ JIT, khi khẳng định được kích hoạt, đủ thông minh để loại bỏ các giới hạn kiểm tra trên mảng truy cập?
- Ngoài ra, có trường hợp nào khác mà bạn có thể nghĩ đến (thực tế hay không), nơi khẳng định sẽ thực sự cải thiện mã gốc mà JIT sẽ biên dịch?