Ich portiere ein Spiel nach Android (es gibt eine Menge Code und sehr wenig davon ist mir), und DalvikVM erzählt mir (über LogCat) alles über die Garbage Collection. Irgendwann im Code bekomme ich einen Strom von "GC frei x Objekte/x ms" Nachrichten, im Grunde informiert, dass ~ 150.000 Objekte wurden gerade gelöscht und es dauert eine volle Sekunde.Android: Track-Nummer der erstellten Objekte
Ich möchte wissen, woher diese kamen! Ich bin mir ziemlich sicher, dass ich absichtlich nicht so viele Objekte erschaffe.
Also, gibt es einen Weg zu bekommen ... im Grunde das Gegenteil dieser Nachricht? Etwas, das eine Protokollnachricht ausgibt, wenn ein Objekt erstellt ist?
So könnte ich über den Code gehen, überprüfen, wie viele Nachrichten generiert werden, und sehen, welche Teile des Codes die Objekte generieren. Ich vermute eine Form der Objekterzeugung in einem Teil einer Schleife, aber wenn möglich, wäre dies ein einfacher Weg, um es sicher zu sagen.
Ich verwende Eclipse 3.4.2
, wenn das relevant ist.
Irgendwelche Ideen?
Wenn Sie eine neue Instanz eines Objekts erstellen, können Sie dann keine Nachricht protokollieren? –
Nun, ja, aber ich möchte eine Nachricht protokollieren, wenn _any_ Objekt erstellt wird. Wie, sogar Rects oder Strings oder ... irgendetwas. – mcccclean