/ / Java Reflection Nachteile - Performance Overhead - Java, Reflection

Java Reflektion Nachteile - Performance Overhead - Java, Reflexion

Ich habe Java Reflection-Nachteile durchlaufen und bin auf die folgende Aussage aus Java-Dokumenten gestoßen:

Leistungsaufwand

Weil Reflexion Typen mit einbezieht, diesind Dynamisch aufgelöste, bestimmte Java Virtual Machine-Optimierungen können nicht aufgeführt werden. Folglich sind Reflexionsvorgänge langsamer Leistung als ihre nicht reflektierenden Gegenstücke, und sollte sein vermieden in Codeabschnitten, die häufig in aufgerufen werden leistungssensitive Anwendungen.

Bitte helfen Sie mir, dies zu verstehen. Was bedeutet es, dass Reflexion Typen umfasst, die dynamisch aufgelöst werden? Welche Optimierungen werden von JVM im Allgemeinen bereitgestellt?

Antworten:

2 für die Antwort № 1

Wie Sie leicht verstehen können, startet die JVMIhre Programme haben eine Menge Verbesserungen vorgenommen, um die Leistung Ihres Codes zu verbessern (was eine großartige Sache ist!), aber wenn wir über Reflexion sprechen, sprechen wir über eine Sache, die sich in der Laufzeit ändert (ich könnte sagen, es ist nicht deterministisch) JVM kann nicht wissen, wie es sein wird, bis es ausgeführt wird. Daher kann es von JVM nicht verbessert werden, da das Verhalten in einigen Fällen zur Laufzeit unterschiedlich sein kann.

Wie ich immer in dieser Art von Frage sage: Hier könnte man eine Antwort von Leuten finden, die sehr, sehr gut wissen, wie Reflektion funktioniert.