Kotlin: Wie kann ich Autoboxing (Müll) in delegierten Eigenschaften vermeiden?

8

In meiner Software habe ich einige verschiedene Werte, die Eigenschaft Delegation verwenden.

Dies ist ein einfaches ähnliches Beispiel, das zeigt, was ich mache:

%Vor%

Es ist mir jedoch aufgefallen, dass die Bezugnahme auf diesen Wert ein autoboxiertes Objekt ( java.lang.Integer ) auf EVERY zu erstellen scheint. Da der Wert potenziell Millionen oder Mal pro Sekunde referenziert werden muss, führt dies zu einer massiven Speicherbereinigung für meine Software. Der Müllsammler wird stark beansprucht.

Gibt es eine Möglichkeit, den Overhead zu vermeiden? Wenn nicht direkt, gibt es irgendwelche cleveren Möglichkeiten, die Property Delegation performant zu "emulieren"?

Sie haben einen Fehlerbericht auf YouTrack gesendet: Ссылка

    
Jire 25.08.2016, 18:20
quelle

1 Antwort

4

Wie in dem Fehlerbericht erläutert, generiert Ihre App "Müll", weil Ihr Property-Delegat generisch ist und daher benötigt wird Boxen von Werten. Wenn Sie einen nicht-generischen Property-Delegaten mit einem primitiven Typ verwenden, findet kein Boxing statt.

    
yole 29.08.2016, 10:55
quelle