Сравнение производительности сеансов KDE Plasma на базе X11 и Wayland

Игорь Любунчич (Igor Ljubuncic), до 2024 года отвечавший в компании Canonical за продукты, связанные с высокопроизводительными вычислениями, провёл тестирование производительности и энергопотребления сеансов KDE Plasma 6.4 на базе X11 и Wayland. В конце июня Игорь опубликовал обзор возможностей KDE Plasma 6.4, в котором пришёл к выводу, что сеанс на базе Wayland уступает в производительности и больше нагружает CPU и GPU, чем сеанс на базе X11. В серии новых статей Игорь попытался более глубоко протестировать производительность обоих сеансов.

Изначально было отмечено, что при тестировании на ноутбуке Lenovo IdeaPad 3 с интегрированным GPU AMD в сеансе Wayland процессор постоянно нагружен примерно на 8% независимо от активности, а каждые 2-3 секунды наблюдается скачок, полностью нагружающий GPU. В сеансе X11 нагрузка на CPU и GPU во время простоя была на нуле. Дальнейшая проверка утилитой radeontop показала большее потребление ресурсов в сеансе Wayland, особенно при включении профиля «Color Accuracy» в настройках экрана. В таблице ниже указана создаваемая средняя нагрузка на GPU в процентах при аналогичном наборе запущенных приложений и сборе данных каждую секунду в течение 60 секунд.

Metric Wayland +

power efficiency
Wayland +

color accuracy
X11
Graphics pipe 3.31 4.03 2.47
Vertex Grouper + Tesselator 0.33 0.3 0.11
Texture Addresser 0.90 2.03 0.78
Shader Export 2.24 3.03 1.42
Sequencer Instruction Cache 0.06 0.08 0.03
Shader Interpolator 2.58 3.31 1.61
Scan Converter 2.54 3.18 1.54
Primitive Assembly 0.32 0.30 0.11
Depth Block 2.51 3.18 1.53
Color Block 2.51 3.18 1.54
VRAM 26.39 28.44 22.36
GTT 3.92 3.98 3.85
Memory Clock 33.33 54.90 54.81
Shader Clock 16.67 16.67 16.67

Тестирование потребления энергии утилитой powertop также показало преимущество сеанса X11: энергопотребление сеанса Wayland составило 6.09 ватт, Wayland с профилем «Color Accuracy» 6.05-6.08 ватт, а X11 — 5.67-5.87 ватт. В целом сделан вывод, что сеанс X11 расходует на 3-7% меньше заряда аккумулятора, чем Wayland.

Проверка нагрузки на CPU утилитой vmstat показала, что во время простоя сеанс X11 потреблял 1.83% CPU, а Wayland — 1.97% (2.1% с профилем Color Accuracy). Утилита была запущена на свежесозданных сеансах в терминале Konsole, подсчитывалось среднее значение при ежесекундной выборке на протяжении 60 секунд. Нагрузка на CPU при использовании Wayland оказалась выше на 7.6% (в режиме Color Accuracy на 14%), чем при использовании сеанса X11. В сеансе Wayland зафиксировано на 25% больше прерываний и на 48% больше переключений контекста.

Metric Wayland +

power efficiency
Wayland +

color accuracy
X11
Average no. of tasks in the runqueue 0.18 0.35 0.07
Total tasks in the runqueue 11 21 4
Interrupts (in) 1188 1173 937
Context switches (cs) 1195 1208 803
Idle CPU % (id) 98.03 97.90 98.17

Затем при помощи утилиты perf был проведён анализ вызовов во время простоя. KWin_wayland потреблял примерно 1% (1.5%) процессорного времени, а KWin_X11 — 0.44%. Обращения к amdgpu составляли 0.77% (1%) для Wayland и 0.65% для X11. В режиме простоя в сеансе X11 было выполнено примерно в два раза меньше процессорных инструкций, чем в сеансе на базе Wayland.

Metric Wayland +

power efficiency
Wayland +

color accuracy
X11
CPU clock (ms) ~543,000 ~540,000 ~527,000
Context switches 14,415 | 26.547/s 16,120 | 29.864/s 6,021 | 11.436/s
CPU migrations 72 | 0.133/s 139 | 0.258/s 92 | 0.175/s
Page faults 201 | 0.37/s 450 | 0.834/s 75 | 0.142/s
Cycles 3.95B | 0.007 GHz 4.43B | 0.008 GHz 1.9B | 0.004 GHz
Stalled cycles frontend 452.5M | 11.47% 616.5M | 13.92% 213M | 11.13%
Stalled cycles backend 1.42B | 36.04% 1.45B | 32.82% 618M | 32.28%
Instructions 780M | 0.2/cycle

1.82 stalled/cycle
901M | 0.2/cycle

1.61 stalled/cycle
483M | 0.25/cycle

1.28 stalled/cycle
Branches 168M | 309K/s 193M | 358K/s 104M | 197K/s
Branch misses 13.83% 13.36% 11.7%

В следующей статье тесты были повторены в конфигурации c Kubuntu 24.04 с устаревшим выпуском KDE Plasma 5.27 и ноутбуком Lenovo Y50-70 с CPU Intel и видеокартой NVIDIA. Результаты оказались примерно теми же — сеанс Wayland оказался менее эффективен, чем X11: потребление энергии 22.42 ватт в Wayland и 21.86 ватт в X11, нагрузка на CPU в режиме простоя 0.067% против 0.050%, число переключений контекста — 43.835/s против 34.133/s, нагрузка при просмотре 4K видео в VLC — 12.54% против 4.26%, производительность WebGL
— 16 FPS против 29 FPS.

Далее аналогичные тесты VLC и WebGL были воспроизведены на ноутбуке Lenovo IdeaPad 3 с CPU/GPU AMD с использованием свежей сборки от проекта KDE Neon.

  • В тесте с воспроизведением 4K видео в VLC нагрузка на CPU при использовании KDE X11 с выключенным композитингом составила 3.72%, KDE X11 со включённым композитингом — 9.8%, KDE Wayland c Color Accuracy (CA) — 25.71%, KDE Wayland в режиме эффективного потребления энергии (PE) — 31.51%. Таким образом нагрузка на CPU при использовании Wayland оказалась в 8-10 раз выше, чем при использовании X11.
  • При использовании Walyand в тесте VLC также зафиксирована генерация на 5-16% больше прерываний.
  • Разница нагрузки на GPU в тесте VLC была в пределах 2% отличий: KDE Wayland (PE) — 56.33%, KDE Wayland (CA) — 57.33%, KDE X11 (Comp ON) — 57.98%, KDE X11 (Comp OFF) — 56.81%.
  • В плане энергопотребления Wayland потребил в тесте VLC больше энергии на 8-49%: KDE X11 (Comp ON) — 10.7-12.1 ватт, KDE X11 (Comp OFF) — 11.4-14.9. ватт, KDE Wayland (CA) — 13.8-14.1 ватт, KDE Wayland (PE) — 13.8-20.4 ватт.
  • В тесте WebGL Aquarium результаты для Wayland и X11 оказались примерно одинаковыми: KDE Wayland (PE) — 16-38 FPS, KDE Wayland (CA) — 18-37 FPS, KDE X11 (Comp ON) — 16-42 FPS, KDE X11 (Comp OFF) — 21-42 FPS, но потребление энергии при использовании Wayland оказалось выше примерно на 8%.

В конечном счёте был проведён ещё один эксперимент, на этот раз охватывающий GNOME из Fedora 42 и KDE Plasma 6.4 из KDE neon. Тестирование проведено на ноутбуке Lenovo IdeaPad 3 c CPU/GPU AMD. Окружения для тестирования GNOME и KDE отличаются, как на уровне ядра и системных компонентов, так и на уровне процессов и настроек, обеспечивающих работу графических сеансов. Измерения не претендуют на точность и на них могут оказываться влияние множество факторов, но они могут отражать общие тенденции в производительности конфигураций по умолчанию на одном и том же оборудовании.

  • Нагрузка на CPU при нахождении системы в состоянии простоя: KDE X11 — 1.83%, KDE Wayland (PE) — 1.97%, KDE Wayland (CA) — 2.1%, GNOME Wayland — 2.2%.
  • Потребление энергии в состоянии простоя с одним окном терминала: KDE X11 — 5.67-5.87 ватт, KDE Wayland (CA) — 6.05-6.08 ватт, KDE Wayland (PE) — 6.09 ватт, GNOME Wayland — 5.83-7.62 ватт.
  • Нагрузка на GPU в состоянии простоя оказалась наименьшей в конфигурации с GNOME Wayland, но отличие объясняется разницей запущенных приложениях System Monitor и GNOME System Monitor.
  • В статистике, собранной утилитой perf, наименьшее процессорное время в состоянии простоя было потрачено в конфигурации на базе GNOME.
  • В тесте воспроизведения видео 4K 60FPS в VLC сеанс GNOME в Fedora потребил немного меньше ресурсов CPU (29.6%), чем KDE на базе Wayland в режиме Color Accuracy (31.51%), но больше, чем сеанс KDE на базе X11 (9.8%) и Wayland в режиме эффективного потребления энергии (25.71%).
  • При оценке потребления ресурсов GPU сеанс GNOME в Fedora в тесте воспроизведения видео 4K 60FPS в VLC потреблял больше ресурсов GPU. Например, нагрузка на графический конвейер GPU в GNOME в Fedora — 58.21%, в KDE на базе Wayland — 56.33% и 57.33%, а в KDE X11 — 57.98%. Потребление видеопамяти в GNOME в Fedora более чем в два раза превысило (50.89) показатели KDE на базе Wayland (23.29 и 24.60) и на 15% превысило KDE X11 (44.36).
  • Потребление энергии при воспроизведении видео: KDE X11 — 11.4-14.9 ватт, KDE Wayland (CA) — 13.8-14.1 ватт, GNOME Wayland — 12.5-15.6 ватт, KDE Wayland (PE) — 13.8-20.4 ватт.

Metric Fedora 42 Wayland KDE neon Wayland (PE) KDE neon Wayland (CA) KDE neon X11 (Comp ON)
Idle CPU % (id) 97.8 98.03 97.90 98.17
Переключения контекста (cs) 536 1195 1208 803
Число прерываний (in) 929 1188 1173 937
Потребление энергии (ватт) 5.83-7.62 6.09 6.05-6.08 5.67-5.87
CPU clock (ms) ~492,000 ~543,000 ~540,000 ~527,000
Переключения контекста 9,468 | 19.244/s 14,415 | 26.547/s 16,120 | 29.864/s 6,021 | 11.436/s
Idle CPU % при просмотре видео 70.4 68.49 74.29 90.20
Нагрузка на графический конвейер GPU при просмотре видео 58.21% 56.33% 57.33% 57.98%
VRAM 50.89 23.29 24.60 44.36
Энегропотребление в ваттах при просмотре видео 12.5-15.6 13.8-20.4 13.8-14.1 11.4-14.9
FPS в тесте WebGL Aquarium 26-29 16-38 18-37 16-42
Энергопотребелние в тесте WebGL Aquarium 17-19 17-29 16-27 21-29

По итогам тестирования сделан вывод, что X11 ещё рано сбрасывать счетов, а решения на базе Wayland требуют дополнительной оптимизации.
X11 отмечается как по-прежнему самое оптимальное решение с точки зрения производительности. Реализация Wayland в KDE предположительно лучше, чем в GNOME — сеанс GNOME Wayland, реализованный в Fedora, судя по тестам менее производителен, чем сеанс KDE Wayland, который в свою очередь отстаёт от KDE X11.

Источник: http://www.opennet.ru/opennews/art.shtml?num=63563