タグ

ブックマーク / qiita.com/rejasupotaro (2)

  • LeakCanaryでメモリリークを検出する - Qiita

    Squareがメモリリークを検出するライブラリ square/leakcanary を公開したので、さっそく使ってみたらすごく便利だった話です。 A small leak will sink a great ship Piwaiが書いたLeakCanaryの記事がこちらです。 LeakCanary: Detect all memory leaks! 要約すると、 Squareではビットマップキャッシュに顧客の署名を書いていたが、端末の画面のサイズ分のメモリを確保するので、署名をするときにクラッシュすることがあり、それがOOMの大半を占めていた。 Bitmap.Configを変更したり、OOMをキャッチしてGCを走らせたりしたが、問題の解決には至らなかった。 我々は間違ったアプローチを取っていたことに気が付いた。ビットマップの大きさではなくメモリリークが根的な原因だったのだ。 通常であれば

    LeakCanaryでメモリリークを検出する - Qiita
    saku_na63
    saku_na63 2015/05/09
  • Network Connection Classはどのようにネットワークの品質を判定しているのか? - Qiita

    いかにしてネットワークの品質の判定するか ネットワークの品質によって振る舞いを変える(スレッド数や画質を調整する)のに、最初は自前でOkHttpのNetworkInterceptorでRTTを計測してそれをもとにスループットを計算しようとしていたのですが、スパイクに大きく影響されるとリソースが無駄になる(主に閾値周辺のユーザに対して頻繁にリスナーが呼ばれたり、URLで画像のサイズや画質を指定するようなものではキャッシュが効きづらくなる)ことがあるので、とりあえずUMTSなら3G、GPRSなら2Gのように、ネットワークの規格によって振り分けるようにしていました。ただし同じ規格でも速度は国によって大きく異なるので、あまり正確な方法ではありませんでした。 規格でネットワークの品質を判定する方法にもやもやしていたのですが、昨日のF8でFacebookが Network Connection Cla

    Network Connection Classはどのようにネットワークの品質を判定しているのか? - Qiita
    saku_na63
    saku_na63 2015/03/28
  • 1