Hallo,
ich habe Speicher-Probleme in meiner Android-App und habe diese auf folgende Funktion eingegrenzt:
Zugegebenermaßen wird diese Funktion sehr oft aufgerufen, ich programmiere an einem Spiel und bei jedem zeichnen brauche ich die Funktion mehrmals...
Ich verstehe nur nicht, warum das so massiv Speicher braucht. Der Rückgabe-String der Funktion wird an canvas.drawText() übergeben und danach nicht mehr verwendet, d. h. ich selbst halte keine Referenzen auf den String. Ich habe ein bisschen damit rumgespielt und herausgefunden, dass folgendes überhaupt kein Problem ist:
Ok, hier wird das Autobixing gespart und es muss dadurch ein ein Long-Objekt weniger erzeugt werden, aber der "abc"-String wird auch hier erzeugt und die letzere Variante frisst meinen Speicher nicht im Geringsten auf...
Hat da jemand eine Idee?
Danke schonmal im Vorraus!
Stefan
ich habe Speicher-Probleme in meiner Android-App und habe diese auf folgende Funktion eingegrenzt:
Java:
private String test(long value) {
return "abc" + value;
}
Zugegebenermaßen wird diese Funktion sehr oft aufgerufen, ich programmiere an einem Spiel und bei jedem zeichnen brauche ich die Funktion mehrmals...
Ich verstehe nur nicht, warum das so massiv Speicher braucht. Der Rückgabe-String der Funktion wird an canvas.drawText() übergeben und danach nicht mehr verwendet, d. h. ich selbst halte keine Referenzen auf den String. Ich habe ein bisschen damit rumgespielt und herausgefunden, dass folgendes überhaupt kein Problem ist:
Java:
private String test(long value) {
return "abc";
}
Ok, hier wird das Autobixing gespart und es muss dadurch ein ein Long-Objekt weniger erzeugt werden, aber der "abc"-String wird auch hier erzeugt und die letzere Variante frisst meinen Speicher nicht im Geringsten auf...
Hat da jemand eine Idee?
Danke schonmal im Vorraus!
Stefan