2016-03-29 13 views

Antwort

1

Nun, es gibt die allgemeine „Reflexion langsam ist und nur als letztes Mittel eingesetzt werden sollte“ best practice, aber die Richtlinien, die ich folgen, von einfach bis fortgeschritten:

  • Cache jeder Method oder Field oder Constructor Instanzen, die Sie von Reflexionssuchen erhalten. Nach ihnen wiederholt zu suchen ist langsam.
  • Wenn Sie können, zwischenzuspeichern sie global in einem WeahHashMap oder ähnlich, dass sie leert, wenn die Klassen entladen werden, so dass Sie Klassenreferenzen aus dem Cache
  • Noch besser nicht auslaufen, wandeln die Method Objekte MethodHandles und verwenden Sie dann LambdaMetaFactory um sie in eine Function<Object[],Object> umzuwandeln, die fast so schnell wie eine kompilierte Methodenreferenz sein wird. Immer noch Cache die Hilfsfunktionen, weil ihre Erstellung teuer ist.
Verwandte Themen