ich meinen Code profiliert und fand heraus, dass meine Klasse, die Comparable<T>
implementiert, inDie Verbesserung Vergleichbare <T> compareTo Leistung
compareTo(Object)
als in
compareTo(T)
gehe ich davon aus, dass die Verlangsamung ist wegen der virtuellen Tabellensuche für diese Methode.
Gibt es eine Möglichkeit, den statischen Aufruf der Funktion zu erzwingen? (wie in nicht virtuellen C++ Methoden)
Ich möchte noch die Comparable<T>
Schnittstelle verwenden, da ich TreeSet
mit diesem Objekt verwenden, und ich möchte nicht diesen Code neu zu schreiben.
EDIT: Nein, ich habe nicht implementieren die compareTo (Object) - diese automatisch vom Profiler erzeugt und berichtet wurde
Und die beiden compareTo's sind genau die gleichen als Gießen? –
Lassen Sie uns die beiden Methoden sehen –
Es wird in der Regel eine Bridging-Methode, wo compareTo (Object) ruft compareTo (ThisConcreteType). Vermutlich macht letzterer fast nichts. -server könnte Inline-Sachen helfen. –