Este artículo está dirigido a programadores y usuarios avanzados.
Hoy, comencé a investigar el uso de CPU de los decodificadores de software de los reproductores multimedia iOS que estoy revisando para mi próxima Biblia multimedia iOS. (Del cual el trabajo en curso gráfico de características y medidas de referencia, en formato OpenOffice, ya es público. Está un poco desordenado (nuevamente, es un gráfico en el que estoy trabajando activamente) pero es posible que ya encuentre respuestas incluso a sus preguntas más singulares). Para esto, he revisado todas las técnicas de medición de CPU disponibles en iOS: un parámetro muy importante de los reproductores si desea tener la mayor duración de la batería y la temperatura del dispositivo baja como sea posible. (Puede haber grandes diferencias en la eficiencia incluso entre los decodificadores de audio personalizados, por ejemplo, OGG o WMA, y mucho menos los de video).
Métodos antiguos: derivar el uso de la CPU a partir de las caídas del nivel de carga y basado en AppStore “Punto de referencia“Aplicación
Simplemente rastrear el uso de la batería ejecutando cada prueba durante al menos una hora (!) Para obtener resultados ya algo confiables y verificar los niveles de carga de la batería antes / después es demasiado lento. Los “Punto de referencia”La aplicación I, en 2008-principios de 2009 (ver, por ejemplo, mi resumen de radio por Internet), que se usa para el seguimiento del uso de la CPU es prácticamente inútil cuando se evalúa la decodificación de video. (Sin embargo, la aplicación todavía funciona de manera bastante confiable en las últimas versiones de iOS. Parece que se eliminó durante mucho tiempo de la AppStore, así que ni siquiera intente buscarla).
Con todo, estos enfoques no se recomiendan, hay mucho mejores.
Instrumentos
En primer lugar, si tiene una Mac y también tiene una cuenta de desarrollador paga, lo que significa que puede implementar aplicaciones de Xcode en su (s) iDevice (s), su mejor amigo serán los instrumentos integrados. Inícielo y seleccione “Monitor de actividad” del grupo predeterminado “iOS”:
Luego, seleccione “Todos los procesos” desde el “Objetivo“Lista desplegable en la esquina superior derecha (de forma predeterminada, dice”Elija objetivo”). Ahora, puede hacer clic en el botón “Grabar” ahora habilitado y comenzar a investigar el uso de la CPU en el panel inferior derecho. (Recomiendo ordenarlo por CPU). Un ejemplo que muestra GoodPlayer (mi reproductor multimedia favorito) reproduciendo la demostración de prueba estandarizada “Suzumiya”:
El método anterior es, con mucho, el mejor:
– no requiere jailbreak y, por lo tanto, funciona con el iPad 3, todas las versiones iOS de iPad 2 y iPhone 4S, etc.
– puede probar una aplicación que se ejecuta en primer plano (una necesidad absoluta si compara los reproductores de video)
Por supuesto, si no tienes una Mac y / o no tienes una cuenta de desarrollo paga, tienes muchas posibilidades. Luego, es posible que desee examinar las alternativas que se describen a continuación.
Terminal móvil / SSH / ps / top
Si su dispositivo tiene jailbreak, es posible que ya haya instalado OpenSSH o Terminal móvil (o ambos). (Nota: si opta por el último, deberá seguir los pasos que describí en ESTE artículo). Para configurar el primero (el enfoque recomendado, ya que no necesita ejecutarse en primer plano) , simplemente siga los pasos explicados en la página principal de Cydia, en “Cómo acceder a OpenSSH”, Anotado en la siguiente captura de pantalla:
Tan pronto como obtenga acceso al símbolo del sistema, ya sea local (MobileTerminal) o remoto (OpenSSH), notará que las distribuciones estándar con jailbreak carecen del comando “ps”, que, al menos en sistemas operativos “completos” como Mac Se necesita OS X para comprobar rápidamente el uso de la CPU. Debe instalarse por separado de Secciones> Administración> adv-cmds. Sin embargo, no hay “UPC” o “TIEMPO“Columna en la versión iOS de PS (consulte ESTA para obtener más información sobre cómo manejarlos), por lo que es completamente inútil para nuestros propósitos.
“Cima”¡Por el rescate! Si bien es bastante inútil en Mac OS X (a diferencia del PS que se acaba de discutir), ofrece los mismos (muy buenos) resultados de uso de CPU constantemente actualizados en iOS que en Instrumentos. Una captura de pantalla de esto (nuevamente, mostrando el uso de la CPU durante Suzumiya descodificación):
“Cima” está en el “cima“Paquete bajo Secciones> Administración en Cydia. Al igual que con adv-cmds, solo está disponible si se declaró desarrollador al iniciar inicialmente Cydia. Si no lo ha hecho, siempre puede cambiarlo yendo a Fuentes> Configuración.
BateríaDetective
También compré la aplicación Cydia “BateríaDetective”($ 2) solo para descubrir que es totalmente incompatible con mi iPad 2 que ejecuta iOS 5.0.1 o es completamente inútil, al menos para monitorear el uso de CPU de procesos individuales. Al menos tengo valores tremendamente diferentes y contradictorios cuando, por ejemplo, comparo el consumo de batería causado por el Correo y FaceTime Procesos. El valor de medición de la batería que obtuve después del muestreo. Buen jugador También fue inútil y órdenes de magnitud por debajo del uso real de energía de la aplicación.
Sin embargo, existen ciertas ventajas de la aplicación: por ejemplo, muestra el recuento de ciclos de la batería (estrechamente correlacionado con la capacidad máxima restante), que de hecho es único:
Pero, para esto, a menos que odie absolutamente los anuncios, también puede usar el gratuito (!) BatteryInfo Lite, también disponible en Cydia. ¡Recomiendo encarecidamente el último (a diferencia del primero, que realmente no podría usar para nada)!
Esta aplicación (todavía) está disponible en la AppStore (a diferencia de “Punto de referencia”) Y, hasta cierto punto, también es capaz de mostrar la carga (total) de la CPU del sistema; consulte el área anotada en la siguiente captura de pantalla:
Esto muestra la pantalla de la aplicación cuando se reproduce la pista de audio del video de prueba estándar “Monstruos”.
Con ambos núcleos de CPU utilizados al 100% (por ejemplo, GoodPlayer se bloquea después de regresar de reproducir una pista de audio MKV de 1080p en el fondo y, luego, tocar Listo), el primer valor es de alrededor de 2.5.
La desventaja de esta aplicación en comparación con todas las demás es que es MUY lento para disminuir a alrededor de 0.5-0.7 (el primer número en la sección “Carga”) después de que la carga real se ha ido, es decir, la aplicación de uso intensivo de CPU es cerrado. Además, por su naturaleza, no se puede ejecutar en segundo plano y, por lo tanto, no se puede utilizar para comparar, por ejemplo, la decodificación de secuencias de video (a diferencia del audio). Sin embargo, si absolutamente no tiene acceso a una Mac con Instrumentos o no puede / no quiere hacer jailbreak, aún puede ser útil.
ACTUALIZACIÓN (23 / mayo / 2013): Hoy dia, “cima”Ha resultado ser de gran ayuda. Mi (antiguo bootrom) JB’n iPhone 3GS con la última versión de iOS (6.1.3), que solo conservo para fines de desarrollo / conferencias (sin siquiera una tarjeta SIM), ha mostrado los signos típicos de que algo está usando la CPU durante todo el tiempo. tiempo, agotando la batería muy rápido y haciendo que el teléfono se caliente y lento. “Top” ha mostrado lo siguiente:
Como puede ver, fue “ubicación”Que ha utilizado continuamente el 100%. Rápidamente descubrí que no se trataba de ningún servicio de ubicación ni de actualización automática de la hora (todos se pueden deshabilitar desde Ajustes – los desactivó todos para la prueba) que lo obligó a usar continuamente la CPU. Tampoco hizo ningún ajuste de jailbreak (probado esto simplemente ejecutando Cydia, que desactiva la mayoría de los ajustes de JB). Después de un tiempo, descubrí que era iCloud. Después de una inhabilitación en Ajustes (con la eliminación de material sincronizado local) y vuelva a habilitarlo con todas las funciones (incluidas Donde esta mi telefono), el problema desapareció. Durante todo este tiempo, la observación continua de los resultados devueltos por top fue de gran ayuda. Pude ver de inmediato los efectos de deshabilitar / habilitar una determinada función específica de ubicación de iOS, aplicaciones de terceros o ajustes de JB. Sin esto, probablemente hubiera tardado días en descubrir que fue iCloud el que causó los problemas.