Por qué los procesadores del iPhone son más eficientes y rápidos que los de Android?

Los núcleos del iPhone son más rápidos porque son más grandes. Sí, son núcleos realmente grandes. Apple hablaba en serio cuando dijo "rendimiento de clase de escritorio". Es tan grande como los núcleos de sobremesa de Intel y es más rápido en algunos aspectos.

Aquí están las die shots de Apple A8 vs Intel i7 4770k puestas a escala:

main-qimg-0399bc7fa3ec651d3d44d7a6f7a24502.webp

Y este es el aspecto que tendría su clúster de doble núcleo, uno al lado del otro:

main-qimg-b56dbbfe4e1e1e7bd62e2b9252ce851e.webp

Técnicamente, sólo es eficiente en casos de uso intensivo. Un benchmark en 2013 insinuaba que los núcleos Cyclone del iPhone's tomaban 6 vatios por núcleo. Incluso el Cortex A57 del Snapdragon 810 consume 3 vatios menos por núcleo.

Una sesión de juegos agotaría la batería del iPhone sin más. Pero la mayoría de los casos de uso son una situación de "carrera hacia el sueño". Es decir - hacer el trabajo y volver a dormir. Esto funciona en la mayoría de los casos, como responder a un clic, tomar una foto, abrir una aplicación, etc., lo que le da una buena eficiencia general.

Y es un error común que iOS está súper optimizado. No es así. Android tiene dos tiempos de ejecución diferentes, tiene capas y capas de controladores, un sistema de archivos completo y mantiene la compatibilidad hacia atrás todo el camino de vuelta a android 1.0. Hace todo eso con la mitad del rendimiento de un solo núcleo del iPhone actual. Y aún así se las arregla para funcionar maravillosamente si tienes android de serie. Eso sí que es optimización. Windows Phone hace todo eso más 3 tiempos de ejecución y 2 pilas de librerías gráficas, todo en un hardware de 3 años con 512 MB de RAM. ¿Cómo llamas a eso?

Apple no está aprovechando sus ventajas como empresa que sólo tiene que lidiar con un número limitado de hardware. Están perdiendo su ventaja en el refinamiento que es más evidente cada generación que pasa, ya que Android se somete a una optimización agresiva después de que dejaron de añadir características hace 2 años, mientras que iOS se extiende a más y más modelos de múltiples generaciones. Y aquí hay algunas cifras de los benchmarks de Geekbench para los amantes de los números:

main-qimg-787ddc5f2bc966d3fef43b2ccbaea446.webp

Los núcleos son:
Apple Hurricane (o como se llame)
Intel Haswell
Samsung Mongoose (cifras filtradas)
NVidia Denver
ARM Cortex A57
AMD Steamroller
AMD Puma+
Intel Silvermont

EDIT:

Veo que unos cuantos se han ofendido porque pensaban que estaba hablando mal de sus decisiones de compra. No lo hago. Estoy siendo tan imparcial como es humanamente posible. Las puntuaciones de los benchmarks son legítimas, provienen de Geekbench. Las instrucciones por reloj indican el rendimiento de dos cuidados a igual velocidad de reloj. La historia nos dice que esta es la métrica más importante en el diseño de CPUs. Los núcleos de Apple pudieron vencer al i7 más grande simplemente porque su ponderación para las decisiones de diseño coincidió con la ponderación de Geekbench' para las diferentes cargas de trabajo. Y el código tiene menos ramificaciones que la típica aplicación con referencias de memoria muy primitivas. Si añadimos referencias de memoria complejas en un código muy ramificado (como una base de conocimientos construida en C#), veremos cómo se alejan los núcleos de Intel. Ejecuta esto en una máquina virtual y codifica los vídeos en el segundo hilo si te empeñas en cabrear a Apple. Además los núcleos de la CPU rondan el 60% (la otra mayoría la tiene la GPU) del chip i7 mientras que en los chips Mobile es menos del 20%.

EDIT 2:

Las cosas van a cambiar con el Snapdragon 820 (núcleos Kryo) y el Exynos 8890 (núcleos Mongoose).