Apple iOSDestacadosGoogle Android

Android o iOS: ¿Cuál corre mejor?

El eterno dilema de¿ ios o android? ¿ cuál es mejor? todos están a favor o en contra de alguno de estos dos sistemas operativos.  Pero cuando  no se prueban las dos plataformas es más fácil opinar que la suya es la mejor y  dejarse guiar por lo que se lee. Ninguna de las dos es perfecta, definitivamente, pero ¿ que pasa con la fluidez? ¿ por qué  en Andriod  el rendimiento no fluye tan bien como ios? Qué mejor que una respuesta “objetiva” proveniente de Google, una sencilla hecha por medio del Ingeniero Andew Munn quién desde Google+ menciona:

No son por pausas GC. Tampoco es porque Android ejecute bytecode y porque iOS en cambio haga lo propio código nativo. La causa es que en iOS toda interfaz se procesa en unos procesos dedicados las interfaces con una alta prioridad a tiempo real que ocurre cuando se paran algunas acciones. Sin embargo Android ejecuta al estilo de un ordenador tradicional, donde el modelo de renderización ocurre en el proceso principal con una prioridad normal, causando que todo parezca menos fluido

Esto se puede notar al navegar en Internet donde en  IOS si a mitad de las cargas decides mover la página   ésta deja de cargarse y cuando se suelte el dedo volverá a cargar. En Android mientras  te mueves por la página, ésta se  terminará de cargar. Y si tu equipo es de doble núcleo no pasa nada ya que uno se encarga de cargar la página y otro sw cargar la interfaz de la pantalla. Ricardo Galli da la explicación de forma más detallada donde intervienen otros factores como la aceleración por hardware, optimización de código, prioridades, etc.:

El problema de la latencia en Android es fundamentalmente un problema del scheduler. Android funciona mucho mejor con el “multitask” (en realidad “multiprogramación”) porque es un Linux y no han tocado prácticamente la gestión de procesos. Para arreglar este problema sólo tienen que mejorar el scheduler. Seguramente están trabajando en ello, y de hecho se ha mejorado mucho.

El otro problema que tiene Android es que cada proceso es una máquina virtual de Java separada al que han optimizado haciendo que se comparta la memoria de las librerías comunes (como hace naturalmente el Linux/UNIX) y código muy optimizado.

Los programas en Android están en ese código intermedio que es interpretado por la máquina virtual, en cambio en iOS es nativo del procesador (que da ventajas de velocidad, pero desventajas de portabilidad y diversidad, lo que solucionan con un sólo tipo de hardware). Seguramente hay cosas que se pueden mejorar, pero esta desventaja es cada vez menor con la ampliación de velocidad de procesadores, y sobre todo de caché.

Los schedulers no son una ciencia exacta, es algo bastante quisquilloso, con montón de “casos extremos” (corner cases) al que ir detectando y agregando heurísticas que se aprenden con la experiencia.

Es más que probable que el problema desaparezca (por tres razones fundamentales, las mejoras en el scheduler, la gestión de la máquina virtual de Java y la mejora del hardware), lo que no se puede decir, a estas alturas, es que siempre será así, y que es un problema de diseño original

Al reconocer dónde está el problema  podemos estar seguros que continuarán trabajando en ello para igualar o superar a ios así que solo podemos esperar cosas buenas en cada actualización.

Vía: Androidsis

Artículos relacionados

Back to top button