Авторские статьи об OpenSource

Множество улучшений для GNOME от Canonical.


С тех пор как Ubuntu перешла с Unity на GNOME, сотрудники Canonical внесли множества улучшений в рамках работы над веткой GNOME 3.32. В частности, разработчик Даниэль Ван Вугт (Daniel Van Vugt) провёл работу над повышением производительности.

Вот небольшой перечень его исправлений:

  • Clutter - важнейшая часть стека GNOME. Библиотека, которая позволяет создавать графический интерфейс пользователя. Раньше все события ставились в очередь и их обработка откладывалась до следующих master clock tick. Это всё благотворно сказывалось лишь на уменьшении нагрузки на ЦПУ, но обладало недостатками. Теперь если есть достаточно свободного времени (idle time), то он будет использовано для доставки события сразу без промедления. В противном случае доставка событий будет использовать своё старое поведение - минимизация нагрузки ЦПУ (minimal-CPU).

    Диаграмма от разработчиков

    BEFORE
    
       Time | 0         10        20        30        40 milliseconds
     -----------------------------------------------------------------
            |   I       I       I       I       I       I
            | M :.......:......M                M          
            | i                i                i
            | rr               rr........       rr
            | RRRR             RRRR      .......RRRR
    
                |-------|--------------------------|
                2       10                         37
    
              Observed lag is 27ms for continuous input (scrolling)
                           or 35ms for instantaneous input (button press)
    
    
    AFTER
    
       Time | 0         10        20        30        40 milliseconds
     -----------------------------------------------------------------
            |   I       I       I       I       I       I
            | M :       :      M                M          
            |   i       i       i       i       i       i
            |   rr......rr?     rr      rr?     rr      rr?
            | RRRR        .....RRRR             RRRR
    
                |-------|---------|
                2       10        20
    
              Observed lag is 18ms for a swap interval 1 client (60Hz)
                           or 10ms for a swap interval 0 client (125Hz)
    
  • Улучшения в оконном менеджере Mutter позволяют уменьшить использование CPU и GPU при движениях мыши и избежать использования GPU, когда в этом нет необходимости.

    Данные разработчика об его улучшениях:
    125Hz mouse on an Intel i7-7700:
    before: 10% CPU, 1% GPU
    after: 6% CPU, 0% GPU (or 3% CPU if you include !283+gnome-shell!276)

  • С родным рендером Mutter теперь возможно принимать новые кадры, не блокируя их. Это улучшает производительность GNOME Wayland в режиме нескольких мониторов.
  • COGL это низкоуровневая библиотека абстракций OpenGL, разработанная для (и являющаяся частью) Clutter. В основном, она используется Clutter для предоставления API базовой отрисовки для прозрачной работы с OpenGL >=1.4, OpenGL ES 1.1 и OpenGL ES 2.0. Проведена работа по уменьшению задержек вывода и пропущенных кадров. Переписан код clutter-stage-cogl и окончательно закрыта проблема [Wayland] Mouse cursor stuck at 60hz when screen is idle and display refresh rate is >60hz
  • Различные улучшения, положительно влияющие на быстродействие:
    * добавлены возможность различать между собой массовые непрерывные события типа движения мыши и события, таковыми не являющиеся. Это позволяет "не спускать" вниз дорогостоящие в плане ЦПУ события на обработку к gnome-shell JavaScript и снизить траты процессора.
    * в cogl-winsys-glx исправлена ситуация с утечкой и ситуацией состояния гонки.
    * использование captured-event::discrete позволяет не тратить циклы ЦПУ, который ранее транслировал в JavaScript то, что тот игнорировал.

Множество различных разработчиков решают различные проблемы Гнома 3, от ошибок и регрессий до улучшений производительности и юзабилити. Сотрудники Canonical вносят свою лепту и все эти улучшения пользователи увидят в марте 2019 в рамках GNOME 3.32.0 и релиза Ubuntu 19.04 Disco Dingo.

Текущая лепта сотрудников Canonical в Monday 14th January 2019

    Twitter   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта