Optimice para Apple Silicon con núcleos de rendimiento y eficiencia: descubra

Las nuevas Apple Silicon, como A13 Bionic, tienen núcleos de alto rendimiento (núcleos P) y núcleos de alto rendimiento (núcleos E). Con estos diferentes tipos principales, puede implementar aplicaciones que ofrecen un excelente rendimiento y una excelente duración de la batería. Para aprovechar al máximo su rendimiento y eficiencia, puede proporcionar al sistema operativo información sobre cómo ejecutar su aplicación de manera óptima. A partir de ahí, el sistema operativo utiliza información semántica para tomar mejores decisiones de planificación y control de rendimiento.

Exploremos algunas de las mejores prácticas para ayudarlo a aprovechar al máximo Apple Silicon y crear aplicaciones más rápidas y eficientes. Aprenda a personalizar su código para multiprocesamiento asimétrico, adopte clases de calidad de servicio y obtenga más información sobre las API de Grand Central Dispatch.

Personaliza tu código para multiprocesamiento asimétrico

A diferencia de los sistemas convencionales de multiprocesamiento simétrico (SMP) que utilizan muchos núcleos idénticos, los sistemas de multiprocesamiento asimétrico (AMP) tienen núcleos que no son todos iguales.

Los Apple Silicon Macs son sistemas AMP que tienen núcleos de potencia (núcleos P) y núcleos de eficiencia (núcleos E). Aunque los núcleos electrónicos están optimizados para una alta eficiencia, ofrecen considerables recursos informáticos para las aplicaciones.

Una aplicación puede ejecutar subprocesos en los núcleos P y E durante un período de tiempo. El sistema operativo coloca subprocesos en núcleos P o E según los siguientes criterios:

  • Información que ofrece su aplicación
  • Supervisión de la carga de trabajo de la aplicación.
  • Observación de todo el sistema.

En Apple Silicon Macs, el sistema monitorea las aplicaciones y los demonios por separado. Esto permite que el sistema los ejecute con características individuales de eficiencia y rendimiento. Por ejemplo, una aplicación que se ejecuta en segundo plano puede colocar sus hilos en núcleos electrónicos para optimizar la duración de la batería, mientras que la aplicación en primer plano utiliza núcleos p.

Utilice las clases de calidad de servicio para clasificar el trabajo.

Las clases de calidad de servicio (QoS) son la forma más importante para que usted clasifique el trabajo realizado por su aplicación y proporcione al sistema operativo información semántica sobre el tipo de trabajo y el impacto en las personas que usan su aplicación.

En los sistemas AMP, el sistema operativo utiliza la información de eficiencia energética proporcionada por las clases de QoS para influir en la ubicación de los hilos en los núcleos P o E. Puede usar las siguientes clases de QoS en las plataformas de Apple:

Por ejemplo, puede usar el fondo de la clase QoS para clasificar todos los procesos en segundo plano de su aplicación para maximizar la vida útil de la batería.

Para obtener más información sobre la calidad del servicio, consulte “Creación de aplicaciones eficientes y receptivas con GCD” de WWDC15 y la Guía de eficiencia energética.



Cree aplicaciones receptivas y eficientes con GCD

La multitarea de watchOS e iOS aumenta la demanda de eficiencia y capacidad de respuesta de su aplicación. Bajo la guía experta del equipo de GCD, aprenda sobre hilos, colas, runloops y las mejores prácticas para usarlos en una aplicación moderna. Sumérgete en la QoS, su distribución y su avanzada …

Guía de eficiencia energética.

Gestionar cargas de trabajo paralelas

Su aplicación puede usar núcleos P y E para ejecutar subprocesos de trabajo paralelos y realizar tareas de manera más rápida y eficiente.

Si asigna estáticamente partes de una carga de trabajo paralela a subprocesos de trabajo, los subprocesos permanecen inactivos antes de que finalice la ejecución. Esto se debe a que no todos los núcleos son iguales y, por lo tanto, los subprocesos de trabajo no progresan de manera idéntica. En su lugar, divida los problemas paralelos en una gran cantidad de partes y use un algoritmo de trabajo de robo para distribuir estas partes a través de hilos y mantener a todos ocupados.

GCD es la API recomendada para expresar cargas de trabajo simultáneas y paralelas en su aplicación. Las cargas de trabajo paralelas deberían usarlos concurrentPerform /. dispatch_apply API para la ejecución simultánea de instancias paralelas de un bloque en varios núcleos. Establezca el número de iteraciones en al menos tres veces el número total de núcleos en el sistema. Esto permite que el algoritmo de robo de trabajo en GCD compense adecuadamente las iteraciones.

Si tiene una base de código existente que GCD no puede adoptar y utiliza un grupo de trabajadores Pthread personalizado, puede beneficiarse de la implementación de un algoritmo de robo de trabajo para un rendimiento óptimo. Para obtener más información, consulte “Optimización del rendimiento de su código para Apple Silicon”.

Envío

Optimice el rendimiento de su código para Apple Silicon

Exploración adicional de AMP

Al incorporar GCD y QoS en su aplicación, puede desbloquear una mayor potencia de procesamiento y asegurarse de que su aplicación funcione bien en todas las plataformas de Apple. Si necesita más información sobre cómo probar su adopción, también tenemos recursos para ayudarlo allí.

¿Estás trabajando en algo que no hemos mencionado anteriormente? Para obtener más información sobre otras situaciones, como demonios y agentes que funcionan para aplicaciones y aplicaciones y complementos de audio en tiempo real, visite el sitio web del desarrollador.

Transmita su código de audio a Apple Silicon

recursos



Cree aplicaciones receptivas y eficientes con GCD

La multitarea de watchOS e iOS aumenta la demanda de eficiencia y capacidad de respuesta de su aplicación. Bajo la guía experta del equipo de GCD, aprenda sobre hilos, colas, runloops y las mejores prácticas para usarlos en una aplicación moderna. Sumérgete en la QoS, su distribución y su avanzada …



Sistema de rastreo en profundidad

Obtenga más información sobre la plantilla de perfil de System Trace Instruments con los ingenieros del equipo de Instruments y aprenda cómo puede aprovecharla al máximo. Aprenda cómo los hilos, la memoria virtual y los bloqueos interactúan para disminuir el rendimiento. Sumérgete para ver cómo mejorar la aplicación …



Modernización del uso del envío de Grand Central

macOS 10.13 e iOS 11 reinventaron la colaboración entre Grand Central Dispatch y el kernel Darwin para que sus aplicaciones puedan ejecutar cargas de trabajo concurrentes de manera más eficiente. Aprenda a modernizar su código para aprovechar estas mejoras y aprovechar al máximo los recursos de hardware.

Descubre más sobre Apple Silicon

Priorizar el trabajo a nivel de tarea

Leave a Reply

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.