Acceder

Ver la Versión Completa : Es realmente más rápido el nuevo Android 2.2 o es un truco publicitario?


johelrc
21/05/10, 21:04:55
Hola a todos

Ha raíz del reciente lanzamiento de Android 2.2 (Froyo para el proyecto) he leído en muchos sitios y por muchas personas preguntando si es posible que el rendimiento sea tan brutal como ellos aseguran (2 a 5 veces más rápido).

Yo quiero brindar mi opinión al respecto como profesional en ciencias de la computación y habiendo trabajado en desarrollo de sistemas operativos y distribuidos sobre el punto si es posible o no ver un rendimiento tal con el mismo hardware.

Primero que voy a dar una clase rápida de conceptos básicos que necesitamos para aclarar el asunto:

OS: el sistema operativo es el encargado de asignar recursos de una computadora así como repartir las tareas y asignar prioridades de ejecución (cual se ejecuta primero y porqué), el OS actúa como un administrador de recursos del equipo.

Lenguaje de programación: es un "protocolo" o un conjunto de reglas que establecen un "paradigma" para el comportamiento de una máquina virtual o real, es generalmente asociado a una "capa de software".

Capa de software: toda máquina tiene un lenguaje nativo, que ella habla y entiende, en la mayor parte de las computadoras este es el "lenguaje ensamblador", que es un conjunto de instrucciones del procesador de la computadora en binario con nemónicos, el dilema radica en la extrema dificultad de programar en este lenguaje, así como el tiempo el desarrollo lo vuelve muy costoso, así se empezaron a construir traductores (compiladores) que construían a partir de programas más sencillos estos más complejos, aunque la calidad del programa decaía el tiempo de desarrollo era menor, así los costos eran menos también, se empezaron a utilizar traductores sobre traductores añadiendo más y más capas de software, traduciendo de un lenguaje a otro o bien entre arquitecturas.

Compilador: es un programa que construye otros programas, utilizando un lenguaje determinado (Java, C, C++, etc) construye un programa "traducido" a una arquitectura distinta.

Librerias o bibliotecas: son conjuntos de instrucciones precompilados, que forman el paquete básico de funciones de un lenguaje, en palabras más sencillas, para no reprogramar una ventana por ejemplo, el programador utiliza una que ya forma parte de una librería, aquí el compilador puede tomar la ventana de la librería y replicarla en el programa (haciendo el programa más portable, pero más grande) o bien solo dejar la referencia.

JIT Compiler: Just In Time Compiler o compilar de tiempo real o justo a tiempo, es un concepto que apareció por primera vez en compiladores java, y el primero fue fabricado por IBM para optimizar el comportamiento de java en su arquitectura as400. Su potencia no radica tanto en el compilador (que puede generar mejor código destino) sino en las librerias que están optimizadas para la arquitectura destino, eso si el OS utiliza las librerías de forma nativa (forman parte del compilador, pero el OS las referencia).

MFLOPS: millones de funciones de punto flotante por segundo, es decir, cuantas divisiones por ejemplo puede realizar un procesador atravez de la arquitectura (software y hardware) en un segundo, medido en millones.

Programa Benchmark: es un programa diseñado para determinar el rendimiento o performance de un equipo, por regla general, un programa de benchmark hace uso los recursos que pone a disposición el OS, es decir, si usted llega a analizar el rendimiento de una empresa usted se fija en la "metodología" que el administrador del lugar aplica, aunque la fábrica por ejemplo cuente con equipo modernisimo si el equipo no se usa, el que realiza el estudio utiliza lo que vé que se está usando por disposición del administrador del lugar.

Ahora bien, es posible que el JIT de Froyo lograra un rendimiento del 450%, por supuesto que sí.

Mi teoría

Un salto tecnológico

Froyo trae consigo unas librerías optimizadas para la arquitectura actual, es decir, si por ejemplo el qualcomm snapdragon trae un potente coprocesador matemático (muy probable) este no se ha usado hasta ahora, porqué? por compatibilidad hacia atrás, porque los otros procesadores más viejos no contaban con este coprocesador, o bien las librerías no tenían las instrucciones para utilizar estas características, por consiguiente estaba corriendo software con instrucciones viejas en hardware nuevo dejando muchos features en espera, cosa que no pasa con Apple por ejemplo, donde ellos son amos y señores de su arquitectura y las librerías siempre han sido optimizadas para esta arquitectura, sacándole el máximo provecho, por eso hasta ahora vemos un rendimiento similar en teléfonos android y apple, aunque los apple tengan un hardware más viejo su software es uno a uno, cosa que no pasa en android, hasta ayer.

En realidad el compilador no es la razón directa, sino las librerías que lo acompañan, porque ellas ya utilizan mejor la arquitectura, sin embargo yo recomiendo recompilar las aplicaciones con el nuevo JIT que aunque no varíe el API (no lo conozco todavía) es seguro que el JIT genera mejor código destino y el programa resultante se ejecute mejor.

Como Android es multiplataforma, google mantuvo compatibilidad hasta el 2.1, ahora 2.2 con el cambio de librerías es muy probable que muchos celulares android viejos no puedan llegar a 2.2 sino hasta 2.1, dada sus limitaciones de hardware, o bien google saque imágenes con librerías capadas que no brinden el rendimiento que si da la arquitectura nueva. Un ejemplo de esto es que antes de froyo no se podía direccionar más de 256m, aunque teléfonos como el nexus o el desire contaban con 512 no era posible para el OS utilizar estas áreas de memoria, probablemente porque el MAR del procesador no podía direccionar más allá de 256, ahora que se habilitó esta posibilidad, el MAR de los procesadores viejos siguen sin poder direccionar 512 (porque es físico, parte del hardware) así que ellos no podrán dar el salto.

En resumen, lo que vemos en froyo y posiblemente veremos a futuro con estas cosas es que el hardware está adelante del software (como es normal) pero casi nunca van de la mano (como el iphone), es mi pensar que el rendimiento actual del nexus es muy similar al del ipad y superior al iphone (mucho más), si son ciertos los rumores de que el nuevo iphone viene con un a4, no veremos un teléfono muy distinto y que no haga muchas cosas distintas a lo que el nexus puede hacer con froyo, bien por google que parece que ya está más involucrado con Android.

Saludos a todos, cualquier crítica y sugerencia será bien recibida.

guigue
21/05/10, 21:24:02
chapó compsañero,... menuda clase magistral, un 10 para ti

davidporter
21/05/10, 21:27:09
:aplausos::aplausos::aplausos: muy currado , si señor .

ikent2009
21/05/10, 21:36:22
euu...Gracias x aportar stas informaciones y darnos un concepto de FROYO un poco mas amplio
y entendible.

pues stoi contento con mi nexus ..aunq comparto la misma opinion de mis colegas..no ablaron

sobre la activacion de radio FM... y tampoco dijeron si ivan a solucionar el problema del

multitouch... ya q aun no lo han mencionado speremos q todo sto venga incluido en el FROYO .

S2

ikent2009
21/05/10, 21:37:19
me uno alas palabras d mis amios...chapó :aplausos::aplausos:

shawe
21/05/10, 21:42:48
johelrc, sea por que ahora se aprovecha mejor el hardware o porque esta mejor optimizado, la cuestión es que realmente si va más rápido, lo hemos podido ver en la presentación. Ahora faltará ver cuando los cocineros tengan ROM's suficiente avanzadas, comprobar si esa mejora también es apreciable o es simple humo.

jixx
21/05/10, 22:14:31
la verdad que me importa bastante poco.. si el nexus ya es muy rapido de por si XD

shosholosho
21/05/10, 22:25:45
wow genial tu post amigo te luciste y la verdad que en los videos que e visto si hay mejora ya tengo ansias de probar el froyo . salu2s

diegozgz
21/05/10, 22:32:45
una duda q me surge y es porque el g1 que como dice google le han puesto froyo y va volao en comparacion con 1.5

shawe
21/05/10, 22:33:43
una duda q me surge y es porque el g1 que como dice google le han puesto froyo y va volao en comparacion con 1.5

Yo me hago una pregunta más tonta, si se la han puesto, porque co*ones no la liberan? :risitas:

luisvg
22/05/10, 00:13:44
Ulala!:oh: Excelente, me encanto esta explicacion, solo tengo una duda:

"Un ejemplo de esto es que antes de froyo no se podía direccionar más de 256m, aunque teléfonos como el nexus o el desire contaban con 512 no era posible para el OS utilizar estas áreas de memoria, probablemente porque el MAR del procesador no podía direccionar más allá de 256, ahora que se habilitó esta posibilidad, el MAR de los procesadores viejos siguen sin poder direccionar 512"

Entonces como es que con la rom de cyano y otros cocineros que llevan eclair (android 2.1) han podido utilizar mas de 256mb?, acaso estan utilizando JIT u otra forma de redireccionar esos 512 mb?
Espero me respondas X-D

johelrc
22/05/10, 01:08:05
Claro!, mira la respuesta es sencilla, un rom particular es modificado para que pueda direccionar más memoria, eso es solo un bit más en el rango, pero si el telefono como tal no tiene 512m de nada le sirve al operativo tener ese bit de más, porque no puede asignar más memoria.

La memoria viene dada en multiplos de 2, osea.. 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, etc... esto pues la memoria se guarda en valores de 1 y 0 o bits, aquí entra la matemática binaria, que es algo complejo para un solo post :P ... el asunto es que agregar un solo bit a la tabla de ruteo del OS da como resultado doblar la capacidad de memoria a localizar, algo realmente sencillo, PERO si el teléfono no cuenta fisicamente con más memoria que 256 de nada le sirve al telefono que el OS pueda trabajar más memoria, si de por sí el OS no puede asignarla :P

La pregunta sería... porqué google no puso ese bit desde un principio? pues porque los telefonos hasta el momento el estándar era 256 para los phones más modernos, y claro Google tenía que dar soporte para esos aparatos por un tiempo, así hasta 2.1 puede correr con 256 (queda demostrado) pero Froyo no (a menos que esté capado claro) porque tiene como requerimiento mínimo para correr 512, que no quiere decir que no pueda correr en menos memoria, quiere decir que ahora en más se cuenta con más memoria, dan un paso hacia adelante, no hacia atrás...

Espero que aclarara tus dudas...

Saludos

MoRt4d3Lo
22/05/10, 01:13:54
Johelrc vaya clases magistrales, hasta yo me he enterado... jajaja

Muchas gracias compi ;-)

luisvg
22/05/10, 01:18:30
Claro!, mira la respuesta es sencilla, un rom particular es modificado para que pueda direccionar más memoria, eso es solo un bit más en el rango, pero si el telefono como tal no tiene 512m de nada le sirve al operativo tener ese bit de más, porque no puede asignar más memoria.

La memoria viene dada en multiplos de 2, osea.. 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, etc... esto pues la memoria se guarda en valores de 1 y 0 o bits, aquí entra la matemática binaria, que es algo complejo para un solo post :P ... el asunto es que agregar un solo bit a la tabla de ruteo del OS da como resultado doblar la capacidad de memoria a localizar, algo realmente sencillo, PERO si el teléfono no cuenta fisicamente con más memoria que 256 de nada le sirve al telefono que el OS pueda trabajar más memoria, si de por sí el OS no puede asignarla :P

La pregunta sería... porqué google no puso ese bit desde un principio? pues porque los telefonos hasta el momento el estándar era 256 para los phones más modernos, y claro Google tenía que dar soporte para esos aparatos por un tiempo, así hasta 2.1 puede correr con 256 (queda demostrado) pero Froyo no (a menos que esté capado claro) porque tiene como requerimiento mínimo para correr 512, que no quiere decir que no pueda correr en menos memoria, quiere decir que ahora en más se cuenta con más memoria, dan un paso hacia adelante, no hacia atrás...

Espero que aclarara tus dudas...

Saludos

Tio eres acojonante X-D
Gracias por aclarar :ok:

Creo que voi a disfrutar mucho esta actualizacion ya que no soi root y se me quedan escaso la ram que tengo ahora disponible, my nexus va a volar con este nuevo froyo!!! :platano:.

patovandan
22/05/10, 14:01:19
gracias por hacerme un poco menos "ignorante " en esto colega

LluisAzm
22/05/10, 14:50:27
Buena y interesante explicación! Gracias!

drnejo
22/05/10, 15:40:22
Chapó! Muchas gracias por la clase ;)

Akura
02/06/10, 17:41:54
Interesante, gracias.

Macanudo
02/06/10, 19:37:28
gracias por hacerme un poco menos "ignorante " en esto colega
Si si yo estoy como tu, yo me siento gilipollas, jejejeje

Arkady.es
02/06/10, 22:25:36
Pasa como en Windows, que el xp no puede gestionar mas de 3.2gb (aunque mucho cazurro le llegaba a poner 8gb) pero los de 64bits pueden direccionarlo sin problemas

rafa555
02/06/10, 23:27:23
Da gusto leer estas cosas. Gracias por explicarlo tan bien!!