TextView.setText simple provoca un uso de CPU del 40%
La ejecución de mi aplicación causa ~ 40% de uso de CPU en mi teléfono:
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);
...
Al comentar elsetText método de uso de la CPU cae al nivel esperado de ~ 4%. El método se invoca cada segundo y actualiza ImageViews, CustomViews ... sin causar el mismo exceso de carga. Además del uso de la CPU, dalvik informa constantemente la recolección de basura de aproximadamente 10-1000 objetos con solo llamarsetText ().
Creando un tracefile como este:
Debug.startMethodTracing("setText");
c.mTxtPosition.setText(position);
Debug.stopMethodTracing();
traceview enumera los siguientes métodos como Top 5 por su respectivo% de CPU exclusivo:
ViewParent.invalidateChildInParent (16%)View.requestLayout (11%)ViewGroup.invalidateChild (9%)TextView.setText (7%)nivel superior (6%)¿Alguien tiene una explicación para esto?