Tôi có vòng lặp for chạy 4096 lần và nó sẽ càng nhanh càng tốt. Hiệu suất thực sự quan trọng ở đây. Hiện tại tôi sử dụng các phương thức getter bên trong vòng lặp mà chỉ trả về các giá trị hoặc các đối tượng từ các trường không thay đổi trong khi vòng lặp đang được tiến hành.Java sử dụng getter trong vòng lặp hoặc tạo biến cục bộ?
Ví dụ:
for (;;) {
doSomething(example.getValue());
}
Có bất kỳ chi phí sử dụng thu khí? Nó có nhanh hơn không?
Ví dụ:
Object object = example.getValue();
for (;;) {
doSomething(object);
}
Nếu có, đó là cũng đúng đối với việc tiếp cận các lĩnh vực công cộng như example.value
?
Chỉnh sửa: Tôi không sử dụng System.out.println()
bên trong vòng lặp.
Chỉnh sửa: Một số trường không phải là final
. Không có trường nào là volatile
và không có phương thức (getter) là synchronized
.
Lưu đầu ra trong một chuỗi cục bộ sẽ nhanh hơn so với getter hoặc đối tượng dereference. Nhưng điều này được đo bằng "thiếu niên" – Jamie