Los benchmarks han estado en boca de todos. Esos programitas que ejecutamos en nuestro smartphone o tablet y, casi por arte de magia, nos dan un número que podemos utilizar para compararlo con otros dispositivos. Siempre que nos fiemos de ellos, claro.
Por que aquí está uno de los problemas. Los benchmarks son muchas veces opacos y no nos dejan ver lo que hay dentro de ese programa. ¿Cómo funciona un benchmark y qué significa ese número? ¿Por qué ese resultado? Y algo muy de moda en los últimos meses, ¿existen las trampas en el mundo de los benchmarks?
Lo que es un benchmark
Un benchmark es una programa cuyo código fuente está preparado para realizar ciertas ejecuciones sobre el hardware. Generalmente estamos hablando de operaciones matemáticas muy exigentes, y en las que la misión es medir los tiempos que se tarda en completar cada uno de los procesos.
Un benchmark es una programa cuyo código fuente está preparado para realizar ciertas ejecuciones sobre el hardware, generalmente utilizando operaciones matemáticas
Un ejemplo muy común en el mundo de los benchmarks es buscar dígitos de π, la conocidísima constante matemática que es número irracional, esto es, con 'decimales infinitos'. Para buscar estos decimales se ejecutan ciertos algoritmos y funciones matemáticas, generalmente bastante exigentes y que suelen sacarle todo el partido a los componentes de nuestro teléfono.En el caso de π la prueba más habitual es medir el tiempo que tarda nuestro dispositivo en ejecutar las operaciones necesarias para sacar una cierta cantidad de decimales, como suelen ser uno, dos o cuatro millones. Evidentemente es de vital importancia que si queremos realizar una comparativa entre el hardware de dos dispositivos, ambos estén en las mismas condiciones o, a lo sumo, en condiciones lo más parecidas posible: mismo sistema operativo, procesos instalados y en ejecución, batería, conectividad, y demás parámetros, además de por supuesto ejecutar los mismos programas y algoritmos, sin alterar una línea de código.
Esta imagen muestra un benchmark, Super Pi, que calcula un cierto número de decimales de π entre 8K
(ocho mil) y 4M
(cuatro millones), y el tiempo en segundos que ha tardado en cada iteración en un GT-N7100, que es el código que recibe el Samsung Galaxy Note II.
Sobre corriente eléctrica y rendimiento del hardware
La corriente eléctrica es la base fundamental de cualquier componente de nuestro teléfono, y además es una variable esencial que también afecta al rendimiento. ¿Cómo? Realmente es muy sencillo.
Los componentes (como pueden ser CPU, GPU o memorias) utilizan corriente eléctrica para funcionar. Disponen de una circuitería interna por la que pasa esa corriente, y están diseñados de forma que, en la mayoría de los casos, cuanto mayor sea la corriente eléctrica que pase por los circuitos, mayor rendimiento ofrece el conjunto, ya que las frecuencias de funcionamiento serán mayores y, por tanto, los diferentes componentes podrán hacer más en menos tiempo.
Incrementar el rendimiento de un smartphone implica un mayor consumo energético, así como posibles problemas debido al calor generado
Evidentemente esto tiene varias implicaciones. Por supuesto, utilizar más energía en el circuito implica que la autonomía de la batería se ve recortada. Todos sabemos que no es lo mismo un smartphone en standby que uno en el que se esté ejecutando un videojuego, aunque ambos tengan la pantalla encendida. En espera es posible que muchos de los núcleos del SoC estén desconectados, sin consumir energía (o consumiendo una mínima cantidad), mientras que con un videojuego lo más probable es que el hardware esté en los límites de su rendimiento.Otra implicación importante es la heredada de la primera Ley de Joule: todo conductor por el que pasa corriente eléctrica genera calor, y si bien es cierto que muchas veces este calor es imperceptible (es decir, se disipa sin que nosotros lleguemos a notarlo) también habréis observado que cuando estáis utilizando vuestro teléfono durante mucho tiempo o ejecutando ciertos programas, el calor empieza a elevarse.
En el mundo del hardware se da también una condición, relacionada con el calor, que siempre hay que tener en cuenta: todo hardware tiene un límite de temperatura de funcionamiento impuesto en su diseño y fabricación, y que nunca es recomendable superar, o de lo contrario puede haber algún componente que directamente 'se queme' y, en ese caso, deje de funcionar indefinidamente.
Las sospechas de trampas
Hace menos de un año que a Samsung se la acusó de manipular el software para sacar el máximo rendimiento en benchmarks. Lo confirmaron, y se tomaron ciertas medidas: 3DMark decidió eliminar de sus rankings a los dispositivos sospechosos, incluyendo no sólo modelos de la propia Samsung si no también de HTC o HP. Por su parte, otras apps como AnTuTu lanzaron versiones específicas para hacer frente a estos fraudes.
Detectando los procesos en ejecución, el sistema sabe en qué apps tiene que rendir más para sacar una mejor puntuación
La clave de este debate es que los fabricantes detectan los procesos en ejecución y, en ciertos casos, incrementan el rendimiento ofrecido por los componentes. Esta práctica es habitual en el mundo del hardware siempre y cuando no se alcancen los límites físicos (generalmente de calor) impuestos por el fabricante del hardware.El último caso ha sido el HTC One (M8), donde la gente de 3DMark ha vuelto a basarse en un análisis de AnandTech, quienes comprobaron que el sistema no es capaz de detectar si una aplicación es exigente o no si no que se basa en su nombre (y por tanto, en el nombre del proceso en ejecución) para asignar mayor o menor cantidad de recursos. Cambiándole el nombre al benchmark los resultados son aproximadamente un 15% inferiores, una diferencia a tener en cuenta.
En medio de aquella polémica sucedida hace poco más de un mes, HTC España nos envió un comunicado con el siguiente contenido:
Cada teléfono HTC está optimizado para conseguir un equilibrio perfecto entre rendimiento, duración de la batería, tolerancia al calor y otros factores. Con la optimización estándar, el objetivo es ofrecer la mejor experiencia a todos nuestros clientes, incluyendo los que quieren súper velocidad para juegos 3D o optimizar la batería durante un día o más. Pero también hay personas, que lo que quieren es evaluar el máximo rendimiento de su procesador comparándolo con el de otros terminales y llevándolo a una velocidad más alla de un uso normal del día a día. Pensando en ello, nuestros ingenieros desarrollaron el Modo de Alto Rendimiento de HTC, que da rienda suelta a todo el potencial del procesador de cuatro núcleos Qualcomm™ Snapdragon® 801. El Modo de Alto Rendimiento de HTC prioriza la máxima velocidad y el rendimiento sobre otras funcionalidades, como la vida de la batería o el calor – similar al concepto de un “modo deportivo” en los coches de alto rendimiento. El Modo de Alto Rendimiento puede además ser activado automáticamente durante los benchmarks, cuyo objetivo es llevar el hardware al límite. El Modo de Alto Rendimiento estará disponible en opciones de desarrollo del terminal. Nuestra principal prioridad sigue siendo dejar en manos del consumidor la posibilidad de elegir cómo optimizar su teléfono en su día a día. El Modo de Alto Rendimiento ofrece diferentes opciones a aquellos que deseen diseñar su propia experiencia y demostrar el potencial tecnológico de nuestro teléfono insignia. El Modo de Alto Rendimiento está actualmente en los teléfonos HTC en algunos mercados y estará disponible en otros mercados en el futuro.
Y desde entonces no se han dado cambios de comportamiento. HTC no ha modificado su comportamiento y sigue ofreciendo ese 'incremento' en el rendimiento para ciertos benchmarks y aplicaciones, de forma que 3DMark, quienes se han posicionado como los líderes frente a este tipo de conductas, les mantiene fuera de sus rankings para el sistema Android.
En Xataka | Benchmarking en móviles, poniéndole números a la potencia
Ver todos los comentarios en https://www.xatakamovil.com
VER 7 Comentarios