Heute habe ich mich gefragt, warum Frameworks wie `Hibernate 'Reflection anstelle von Codegenerierung (zum Beispiel mit Bibliotheken wie BCEL oder ASM) beim Kompilieren/Start der Anwendung verwenden.Java reflection vs code generation
Ist es aus historischen Gründen (wenn Hibernate
geschrieben wurde, gab es keine solche Bibliothek zur Verfügung, die Byte-Code-Generierung im laufenden Betrieb erlauben würde) und jetzt jeder nutzt diese Methode?
Ich würde annehmen, dass der Ansatz mit generiertem Code schneller wäre als der, der Reflexion verwendet.
Die Reflexion ist nicht so langsam, besonders im Zusammenhang mit I/O - Datenbank/Dateizugriff wird mehrere Größenordnungen langsamer, dass die Leistung aufgrund der Reflexion zu treffen. – assylias
Ja, wahrscheinlich hast du recht. Ich habe diese Frage nur gestellt, weil ich neugierig war auf die Entscheidung, die Reflexion zu verwenden. Nach so vielen Jahren von JVM glaube ich, dass es viele Optimierungen gibt, die die Reflexion im Vergleich zur ersten Veröffentlichung von 'Java' beschleunigen. – Andna