Aún no hay versión oficial de Google Chrome para Linux, pero al ser desarrollado en forma abierta, desde hace tiempo que se puede usar mediante las versiones que se publican diariamente de Chromium, el proyecto de código abierto detrás de Chrome.
En el grupo de discusión de los desarrolladores, uno de ellos planteó la inquietud de por qué el navegador se percibe ridículamente más rápido en Linux comparado a las versiones para Windows y Mac, lo que originó un interesante debate acerca de cómo el sistema operativo influye en una aplicación de este tipo.
En la discusión se exponen algunos detalles de implementación que hacen que en Linux algunas aplicaciones corran con ventaja gracias a decisiones de diseño tanto por el lado del sistema operativo como de la misma aplicación. Por ejemplo indican que crear un proceso en Windows es mucho más caro en términos de uso de recursos y esto afecta la creación de nuevos tabs, ya que justamente en Chrome se trata de nuevos procesos. En el caso de Linux, el sistema en general es más ligero y por lo tanto hace menos cosas en operaciones de este tipo. Una de las posibles soluciones planteadas es tener siempre un proceso creado en forma anticipada, de tal forma de que cuando se necesite no tenga que esperar el proceso de inicialización.
X.org comienza a mostrar su nueva cara
Otro aspecto importante es la forma en que se manejan los gráficos. En el caso de Windows se pueden usar dos tipos de gráficos : DIB (independientes del dispositivo) y DDB (dependientes del dispositivo). En el primer caso se crean en memoria normal y luego se copian a la memoria de video, con el problema adicional de que se deben aplicar transformaciones desde una representación genérica a la representación física o final que se requiere y no siempre puede usar aceleración por hardware. En el segundo caso, los DDB, no se requiere tal transformación y una copia puede hacerse con un simple comando ejecutado por la GPU (bitblt), pero el diseño de Windows pone un límite artificial a la cantidad de gráficos que se pueden manejar como DDB, lo que lo convierte en un recurso escaso y poco apetecible por los desarrolladores de aplicaciones.
En el caso de Linux y pese a todo lo que la intuición puede decirnos acerca del tamaño y complejidad de X.org, este tipo de operaciones está muy optimizado, sobre todo en la última generación de drivers que utilizan gestión de memoria unificada en el kernel (GEM), específicamente usando la arquitectura de aceleración UXA. En este caso las copias de bloques de memoria se reducen al mínimo, y dejar disponible un gráfico en la GPU es una operación acelerada por hardware. Es tanto así que cuando se inició el desarrollo experimental de UXA en X.org se midieron mejoras en el rendimiento de hasta un 60%.
Por otra parte, según los mismos desarrolladores de Chromium, la forma en que se están creando los gráficos no siempre usa aceleración por hardware, mientras que en el caso de Linux, gracias a las nuevas arquitecturas de aceleración, primero EXA y luego UXA, todas las operaciones comunes se realizan con aceleración por hardware.
En el caso de Mac, los desarrolladores de Chromium dicen que aún no se han enfocado en optimizar el rendimiento, por lo que no tiene mucho sentido discutirlo en este momento. De todas formas, los usuarios de Windows no deben preocuparse porque ya se han creado los registros en el sistema de seguimiento de bugs de Chromium para solucionar los problemas de rendimiento percibidos.
No hay comentarios:
Publicar un comentario