私が書いているアプリでは、ユーザーのために表示したい統計情報がたくさんあります。Android - ビューのカウンターを効率的に更新する
統計情報には、特定のモジュールが最後に実行された時刻、次回に実行された時刻、サーバーとの最後の通信が行われたとき、次に次の通信が行われる時刻が含まれます。
これに加えて、メモリ使用量(単純なメモリ使用量、実際の使用量を測定しない)などがあります。
メモリー使用量などは数秒ごとに更新でき、問題は発生しませんが、少なくとも秒ごとに更新する必要があります(カウンター用)。
毎秒(または500msの周期でさえ)実行すると、不規則な更新/スキップされた秒が発生するので、今は300msの周期で実行します。
しかし、私のアプリは起動時に遅れが出始めたことに気づきました。
いくつかのプロファイリングの後で、それは時間の70%を取っているサイズ変更が必要なビューで、文字列フォーマッタ(カウンタをフォーマットするため)はかなり残りの部分を取ります。
CPUを使用しているのとは別に、私はlogcatにGC_CONCURRENTが数秒おきに表示されます。
これを効率的に解決するためのヒントを教えてください。
愚かな質問:計算に別のスレッドを使用していますか? –
いいえ、主なUIスレッドからのみ行うことができるビューのサイズを変更するのに大部分の時間を費やしているので、私がやっていれば問題になるとは思わないでしょう。 –
あなたは、UIスレッドでプロセッサ集中型の作業を行うべきではありません。 –