Prosty TextView.setText powoduje 40% wykorzystanie procesora

Uruchomienie mojej aplikacji powoduje ~ 40% wykorzystania procesora w moim telefonie:

final String position = String.format("%02d:%02d:%02d", time.getHours(), time.getMinutes(),
                time.getSeconds());
getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
         c.mTxtPosition.setText(position);
         ...

KomentującUstaw tekst metoda Wykorzystanie procesora spada do oczekiwanego poziomu ~ 4%. Metoda jest wywoływana co sekundę i odświeża ImageViews, CustomViews ... bez powodowania tego samego nadmiaru obciążenia. Oprócz wykorzystania procesora dalvik nieustannie zgłasza zbieranie śmieci około 10-1000 obiektów tylko przez wywołanieUstaw tekst().

Tworzenie pliku śledzenia w ten sposób:

Debug.startMethodTracing("setText");
c.mTxtPosition.setText(position);
Debug.stopMethodTracing();

traceview wymienia następujące metody jako Top 5 według ich wyłącznego% CPU:

ViewParent.invalidateChildInParent (16%)View.requestLayout (11%)ViewGroup.invalidateChild (9%)TextView.setText (7%)najwyższy poziom (6%)

Czy ktoś to tłumaczy?

questionAnswers(4)

yourAnswerToTheQuestion