Hôm nay tôi đã tự hỏi tại sao các khung như `Hibernate sử dụng sự phản chiếu thay vì tạo mã (ví dụ sử dụng thư viện như BCEL hoặc ASM) trong quá trình biên dịch/khởi động ứng dụng.Java phản chiếu vs mã thế hệ
Có phải vì lý do lịch sử (khi Hibernate
đang được viết không có sẵn thư viện nào cho phép tạo mã byte) và bây giờ mọi người sử dụng phương pháp này?
Tôi giả định rằng cách tiếp cận với mã được tạo sẽ nhanh hơn sau đó phương pháp sử dụng phản chiếu.
Phản ánh không chậm, đặc biệt trong ngữ cảnh I/O - truy cập cơ sở dữ liệu/tệp sẽ chậm hơn vài lần so với hiệu suất do phản ánh. – assylias
Vâng, bạn có lẽ đúng. Tôi chỉ hỏi câu hỏi này vì tôi tò mò về quyết định sử dụng sự phản chiếu. Sau nhiều năm JVM, tôi tin rằng có nhiều tối ưu hóa làm tăng tốc độ phản chiếu so với bản phát hành đầu tiên của 'Java'. – Andna