Back home

Serie de optimización del rendimiento de iOS 02 | El punto de partida para la solución de problemas de rendimiento de iOS: retraso, inicio lento, mucha memoria y batería alta

Localizar primero el tipo de problema y luego decidir las herramientas y rutas de análisis es más efectivo que comenzar a solucionar el problema por completo.

Cuando muchos equipos mencionan la solución de problemas de rendimiento, su primera reacción es “abrir Instrumentos”. Esto es ciertamente cierto, pero si ni siquiera distingues el tipo de problema primero, fácilmente puedes caer en un estado después:

  • Miré muchas fotos.
  • También registré un montón de indicadores.
  • Pero todavía no puedo decir dónde radica el problema principal.

Así que el primer paso que enfatizo es siempre la clasificación.

Debido a los diferentes tipos de problemas de rendimiento, los métodos de solución de problemas son completamente diferentes. Si vas en la dirección equivocada al principio, cuantas más herramientas tengas después, más fácil será sentirte abrumado por la información.

1. Primero pregunte claramente: ¿De qué se quejan exactamente los usuarios?

Este paso parece básico, pero es donde muchos problemas se desvían.

Primero debes intentar traducir la pregunta a palabras más específicas, en lugar de un “La aplicación es un poco lenta” general.

Por ejemplo:

  • ¿Es lento para arrancar en frío o lento para arrancar en caliente?
  • ¿Alguna página se abre lentamente o toda la aplicación es lenta?
  • ¿El desplazamiento se atasca o la respuesta es lenta después de hacer clic?
  • ¿Se atasca cada vez más después de usarlo durante mucho tiempo o se atasca tan pronto como se enciende?
  • ¿Es fiebre grave o consumo anormal de energía?

Una vez que el problema se especifica, el alcance del análisis se reducirá considerablemente.

2. Inicio lento, retraso, memoria alta y batería alta son originalmente cuatro rutas diferentes de solución de problemas.

Aunque todos se denominan “problemas de rendimiento”, cuando se trata de solucionar problemas, deben tratarse como cuatro tipos diferentes de problemas.

1. Inicio lento

Deberías prestar más atención a:

  • ¿Es lento tanto el arranque en frío como el arranque en caliente?
  • Qué hace el hilo principal durante la fase de inicio.
  • ¿Se realiza demasiada inicialización antes de mostrar la página de inicio?
  • ¿Se han colocado las tareas no críticas en la ruta crítica?

2. Tartamudeos/fotogramas caídos

Deberías prestar más atención a:

  • Qué está haciendo el hilo principal en el momento de la caída de fotogramas.
  • ¿Se trata de diseño, dibujo, decodificación, procesamiento de datos o demasiadas actualizaciones de estado?
  • Si solo aparece en páginas específicas o listas específicas

3. Memoria alta

Deberías prestar más atención a:

  • ¿Es un pico alto o es un máximo a largo plazo que no volverá a caer? -¿Es una imagen, un caché, una fuga de objetos o un objeto grande retenido durante demasiado tiempo?
  • Si el problema ocurre después de una ruta de función específica

4. Batería alta/calor

Deberías prestar más atención a:

  • ¿Hay demasiadas tareas en segundo plano?
  • Si las solicitudes de sondeo, posicionamiento y red son demasiado frecuentes
  • Si la CPU está continuamente ocupada -Si algunas páginas tienen actualizaciones no válidas o tareas activas a largo plazo

Los diferentes tipos de problemas deben abordarse desde diferentes direcciones. Mezclarlos solo conducirá a una gran cantidad de información al mismo tiempo, pero no a una conclusión real.

3. Si el problema no se puede reproducir de manera estable, no se apresure a profundizar más.

Este es el paso que muchos equipos suelen saltarse.

Si un problema aún se encuentra en este estado:

  • “A veces puede ser lento”
  • “Ocasionalmente atascado”
  • “Un compañero dijo que su teléfono móvil está caliente”

Lo más importante en este momento es concretar al máximo las condiciones de recurrencia:

  • qué dispositivo
  • ¿Qué versión del sistema?
  • ¿Qué camino operativo
  • Arranque en frío o arranque en caliente
  • El Wi-Fi sigue siendo débil
  • Iniciar sesión o modo invitado

Porque el mayor temor en la resolución de problemas de rendimiento es que los límites del problema se desdibujen. Sin una ruta de reproducción estable, todos los análisis posteriores se desviarán fácilmente.

4. Prefiero limitar el alcance primero en lugar de buscar una explicación completa.

Una situación común es que al solucionar problemas de rendimiento, desee “explicar todo el problema detalladamente” desde el principio. Pero en el trabajo real, una forma más eficiente suele dividirse en dos pasos:

Paso uno: limitar el alcance

Primero averigüemos dónde radica el problema:

  • enlace de inicio
  • una determinada página
  • una lista
  • una cierta escena de imagen
  • una tarea en segundo plano

Paso dos: excavación profunda dirigida

Después de reducir el alcance, utilice herramientas y datos más específicos para identificar cuellos de botella.

El valor de esta secuencia es: Primero construya un “mapa de problemas” en lugar de buscar ciegamente respuestas en indicadores masivos.

5. Un juicio muy práctico: ¿Es este un “problema de ruta crítica” o un “problema de acumulación a largo plazo”?

Estos dos tipos a menudo se mezclan, pero la lógica de resolución de problemas es diferente.

Problemas de ruta crítica

Por ejemplo:

  • Arranque lento desde frío
  • La página se abre lentamente.
  • Respuesta lenta después de hacer clic.

Este tipo de problema se parece más a “se hace demasiado trabajo en un momento determinado”, y lo que hay que encontrar es el cuello de botella en el momento crítico.

Problema de acumulación a largo plazo

Por ejemplo:

  • Se atasca cada vez más después de un uso prolongado.
  • La memoria es cada vez más alta.
  • La batería sigue siendo alta.

Este tipo de problema se parece más a “la estrategia operativa a largo plazo del sistema no es saludable”. Lo que hay que buscar son los costos acumulativos y los problemas del ciclo de vida.

Esta distinción es muy práctica, porque determinará directamente si centrarse en un proceso instantáneo o observar la tendencia durante un período de tiempo.

6. Malentendidos comunes: sacar conclusiones antes de clasificar tipos

Es fácil hacer estos juicios prematuros al solucionar problemas de rendimiento:

  • “Debe ser un problema de imagen”
  • “Esto debería ser culpa de SwiftUI”
  • “Esto parece una pérdida de memoria”

Estas conjeturas a veces son correctas, pero si se sacan conclusiones demasiado pronto, es fácil que los análisis posteriores giren en torno a una sola hipótesis.

Entonces prefiero responder primero:

  • ¿Qué clase de problema es este?
  • ¿En qué camino ocurre?
  • ¿Cuáles son las condiciones para la recurrencia?
  • ¿Es esporádico o estable?

Es más importante clasificar el problema correctamente primero que adivinar primero el motivo.

7. Una secuencia inicial más cercana al combate real.

Si alguien me hiciera una pregunta sobre desempeño hoy, normalmente comenzaría con esta secuencia:

  1. Preguntar claramente sobre el fenómeno percibido por el usuario.
  2. Determine si se trata de inicio, retraso, memoria o batería.
  3. Confirme si se puede reproducir de manera estable.
  4. Confirme si el problema se concentra en una determinada página o ruta.
  5. Decida qué herramienta utilizará a continuación.

Esta secuencia parece muy simple, pero puede reducir significativamente la situación de “la herramienta se abre mucho, pero la dirección aún no está clara”.

8. Conclusión: primero divida el problema y luego use las herramientas, la eficiencia será mucho mayor

Para decirlo en forma más breve, diría:

El primer paso más importante para solucionar problemas de rendimiento de iOS es dividir primero los problemas en diferentes tipos, como “inicio lento, retraso, mucha memoria y batería alta”, y luego decidir la ruta de análisis.

Porque una vez que los problemas de rendimiento no se clasifican primero, no importa cuánta información llegue después, será difícil acercarse realmente a la respuesta.

FAQ

What to read next

Related

Continue reading