Gnome 3.34 soluciono varios errores de rendimiento que afectan a Ubuntu 19.04

octubre 29, 2019 , 0 Comments

gnome3.34

Hace algunos días se realizo una publicación en el foro de Ubuntu, el la cual los desarrolladores de Canonical han notado que el entorno de escritorio “Gnome shell” en la versión de Ubuntu 19.04, que se basa en Gnome 3.32, era notablemente más lento que otros entornos de escritorio.

Inicialmente se supuso que la razón era el uso de JavaScript, pero resultó que JavaScript era solo el diez por ciento del código en la combinación de Gnome Shell junto con el administrador de ventanas Mutter y que esto en realidad no era responsable de la lentitud observada.

La siguiente suposición fue que el software estaba sobrecargando la CPU o la tarjeta gráfica. Pero las mediciones mostraron que este no era el caso. Lo que surgió en cambio fue que los procesadores se vieron obligados a estar inactivos durante demasiado tiempo.

Lo importante a tener en cuenta aquí es que la mayor parte del código fuente está en el proyecto Mutter, no en Gnome Shell. Entonces, en general, solo alrededor del 10% de Gnome Shell está escrito en JavaScript cuando considera Mutter, y alrededor del 90% está escrito en C.

Por lo tanto, los desarrolladores pudieron centrar su investigación en la medición del tiempo, al que se hace referencia en el artículo como “tiempo real”. Debido a que Gnome y Mutter procesan un bucle de eventos Glib cada uno en un solo subproceso, son propensos a retrasos.

Cualquier retraso más prolongado puede hacer que se salten uno de los cuadros que componen la imagen en el monitor. Esto se manifiesta en un retraso notable para el usuario en el monitor.

Al medir los diversos retrasos, los desarrolladores encontraron no menos de media docena de errores de Gnome corregidos en Gnome 3.34.

El primer error condujo a la omisión de un marco porque después de un retraso de la programación del marco por unos pocos milisegundos, el tiempo en el que el marco tendría que ser reconstruido se calculó incorrectamente.

Pero la corrección de este error, que no siempre ocurrió, hizo que la presentación fuera mucho más fluida.

En segundo lugar, los desarrolladores descubrieron que casi todos los cuadros se retrasaron en X.org porque el cálculo del cuadro se estableció demasiado pronto. A una velocidad de cuadro de 60 Hz, la pantalla se retrasó en 16 ms.

En este caso Wayland no se ve afectado. Otro error solo concierne a Wayland. El problema era que en Mutter, la velocidad para mostrar el puntero del mouse se estableció en 60 Hz. Esto podría generar problemas de hasta el 100% de uso de la CPU si la frecuencia de actualización fuera diferente.

También Mutter presentaba otro problema que solo se ha resuelto parcialmente hasta ahora. Como resultado, todos los eventos de entrada se retrasaron hasta la siguiente trama, es decir, hasta 16 ms a 60 Hz.

Otra demora fue causada por las soluciones para los controladores propietarios de Nvidia en X.org, que ahora ya no son necesarios.

Y otro problema fue que también destacado, determina a qué afecta el puntero del mouse, en el que se realizaron llamadas OpenGL, esto afecta extremadamente y provoca tiempos de espera adicionales debido a la sincronización necesaria entre la CPU y la GPU.

Como resultado, Gnome 3.34 es significativamente más rápido. Ya se conocen al menos otros dos problemas que aún no se han resuelto.

  1. Cuando se usan varios monitores, los bloqueos en el backend de Wayland causan retrasos significativos. Esto debería corregirse de acuerdo con los desarrolladores en Gnome 3.36 y, por lo tanto, también en Ubuntu 20.04.
  2. El segundo problema es que aún no se resuelven todos los retrasos en Mutter. El artículo concluye con una serie de consejos sobre qué errores evitar al buscar problemas y una perspectiva sobre qué hacer a continuación.

La optimización de Gnome debería ser para Ubuntu 20. 04 en una serie de mejoras que deberían de centrarse en hardware moderno y rápido. Los problemas restantes que afectan a las computadoras más antiguas y más lentas deben abordarse y resolverse en Ubuntu 20.10.

Si quieres conocer más al respecto sobre la publicación, puedes consultar el siguiente enlace. 


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.