Ich arbeite an einer Anwendung und ein Entwurfsansatz beinhaltet eine extrem starke Nutzung des instanceof
Bedieners. Obwohl ich weiß, dass OO-Design generell versucht, die Verwendung zu vermeiden instanceof
, ist dies eine andere Geschichte, und diese Frage bezieht sich ausschließlich auf die Leistung. Ich habe mich gefragt, ob es irgendwelche Auswirkungen auf die Leistung gibt. Ist ist genauso schnell wie ==
?
Zum Beispiel habe ich eine Basisklasse mit 10 Unterklassen. In einer einzelnen Funktion, die die Basisklasse verwendet, überprüfe ich, ob die Klasse eine Instanz der Unterklasse ist, und führe eine Routine aus.
Eine der anderen Möglichkeiten, die ich zu lösen dachte, bestand darin, stattdessen ein ganzzahliges Grundelement "Typ-ID" zu verwenden und eine Bitmaske zur Darstellung von Kategorien der Unterklassen zu verwenden und dann einfach einen Bitmaskenvergleich der Unterklassen "Typ-ID" mit a durchzuführen konstante Maske, die die Kategorie darstellt.
Wird instanceof
die JVM irgendwie so optimiert, dass sie schneller ist? Ich möchte mich an Java halten, aber die Leistung der App ist entscheidend. Es wäre cool, wenn jemand, der schon einmal auf diesem Weg war, Ratschläge geben könnte. Wähle ich nicht zu viel oder konzentriere ich mich auf das Falsche, um es zu optimieren?