Hace unos días se propuso un pequeño cambio en Linux que logra una
importante mejora cuando el sistema se ve sujeto a grandes demandas del
procesador. Se trata de sólo unas 200 líneas que cambian la forma en
que estamos acostumbrados a experimentar la respuesta del escritorio
bajo estas condiciones, y hasta el mismísimo Linus se encuentra entre
los sorprendidos por su limpieza y sobre todo, por su efectividad.
Linux en general se comporta bien realizando varias tareas al mismo
tiempo, pero en sistemas de escritorio el uso intensivo de CPU puede
hacer que las aplicaciones típicas se sientan más lentas. Por ejemplo
si se está codificando un video, compilando una aplicación o
actualizando el sistema, aplicaciones mundanas como un navegador o la
reproducción de video se verán afectadas, causando que el usuario
sienta que el sistema está más lento.
El cambio propuesto modifica la forma en que se distribuye la CPU
entre las distintas tareas que está corriendo el sistema, de tal forma
que esta distribución no deje sin recursos a una aplicación cuando otra
está solicitando intensivamente el procesador. No se trata de que el sistema corra más rápido, sino de que las aplicaciones no se sientan lentas bajo estas condiciones.
Básicamente lo que hace el cambio es
agrupar las tareas para que un proceso que levanta varios hilos de
ejecución compita de igual forma con otra aplicación que también
requiere de la atención del procesador. Esta agrupación se crea al
vuelo de forma automática, sin que el usuario tenga que hacer nada
especial.
Este cambio será percibido por todos los usuarios de escritorio, ya hay varios alabando el cambio, incluyendo a Linus Torvalds:
Sí, tengo que decir que estoy (felizmente) sorprendido
por lo pequeño que termina siendo el parche, y cómo no es ni intrusivo
ni feo […] Es una mejora en cosas como el desplazamiento suave
(scrolling), pero donde lo he encontrado más interesante es cómo
pareciera hacer que las páginas web cargaran más rápido […] Pienso
derechamente que este es uno de esos parches que significan una real
mejora. Buen trabajo. La agrupación de tareas va desde “útil para
algunos casos” hasta “esto es una característica asesina”.
Michael Larabel de Phoronix, el sitio que presentó este trabajo al
público general, preparó un par de videos en donde se puede ver el
antes y el después de aplicar el cambio. Si bien se trata de un caso
extremo ya que usa una máquina bastante potente, ilustra claramente la
contundencia del cambio, y otros usuarios ya han confirmado que se
percibe perfectamente en otros escenarios con aplicaciones y hardware
más comunes.
La prueba consiste en crear un proceso intensivo en CPU como el
compilar el kernel con 64 tareas en paralelo, al mismo tiempo que se
realizan tareas “mundanas” como reproducir un video en 1080p, navegar
por la web y ejecutar una aplicación OpenGL simple. En el primer video
se puede ver que la reproducción del video se vuelve imposible,
mientras que las otras aplicaciones tienen problemas en responder.
En el segundo video, con el parche aplicado, se ve que a pesar de
estar corriendo la tarea intensiva (compilación con 64 tareas), la
reproducción del video en 1080p no se ve afectada, y el resto del
sistema se puede seguir usando como si nada.