タグ

GCに関するmio_wembleyのブックマーク (2)

  • CacheオブジェクトにはSoftReferenceを | Techfirm Android Lab

    Android、いかがですか。 今日もOut Of Memory、出していますでしょうか。 そんなあなたに朗報です。 少しでもメモリにやさしいプログラムを。 今日はSoftReferenceのお話です。 トレードオフ Androidで(というよりもJavaで)パフォーマンスに最も影響を与えるのはインスタンス生成の部分ではないでしょうか。 ループの中でインスタンスを生成しようものなら、たちまちあなたのUIは機敏さを失うことになるでしょう。 インスタンス生成はGCの源です。ストップザワールドを少しでも避けるためには極力newなどは控えなければなりません。 となると、インスタンスを作らないことが究極なのですが、全く作らないというわけにはいきません。ならば、一度作ったインスタンスは再利用しようではありませんか。 その時に役に立つのがキャッシュです。一度作ったインスタンスはキャッシュに保持し

  • Android のメモリ管理 #4 SoftReference と WeakReference を活用する | DevelopersIO

    オブジェクトの利用頻度とヒープ状況を判断して開放される。 アクセスの少ないオブジェクトから開放される。 OutOfMemoryError が発生する前に開放してくれる。 GC が実行されたとき、参照がひとつもない状態であれば開放される。 一時的に参照を保持しておきたい場合に有効。 WeakHashMap クラスで自動的に開放される HashMap も作れる。 こんな感じです。名前からして雰囲気は似ていますが、メモリ解放される条件は大きく違います。 一番大きな違いは GC が実行されたときに参照が残っていても開放されない可能性があるのが SoftReference で、 GC が実行されたときに参照が残っていなければ開放されるのが WeakReference です。少し分かりづらいので、実際の挙動を確認してみたいと思います。 メモリ解放のタイミングを確認してみる ということで、参照方法による

    Android のメモリ管理 #4 SoftReference と WeakReference を活用する | DevelopersIO
  • 1