2015-06-28

GSON で Background sticky concurrent mark sweep GC… が出続けてしまった話

GSON を使った時の話。

Background sticky concurrent mark sweep GC freed xxx(xxxKB) AllocSpace objects, 1(xxKB) LOS objects, 0% free, xMB/xMB, paused x.xxxms total xx.xxxms

みたいな出力が LogCat に出まくってどうしたものかと思っていました。



より具体的には、GSON へのデータ変換 (Gson#toJson()) でのアプリのフリーズ。
フリーズ中に LogCat に GC 発生通知が大量に出力された。

結論から言えば、保存対象が Context のインスタンスフィールドを保持していることによる、インスタンスの肥大化が原因だった。
大きなのインスタンスフィールドを排除することで解決。めでたしめでたし。

0 件のコメント :

コメントを投稿