Сравнение производительности сеансов 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.
Далее аналогичные тесты были воспроизведены на ноутбуке Lenovo IdeaPad 3 с CPU/GPU AMD с использованием свежей сборки KDE 6.4 от проекта 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 Wayland (PE) — 13.8–20.4 ватт, KDE Wayland (CA) — 13.8–14.1 ватт, KDE X11 (Comp ON) — 10.7–12.1 ватт, KDE X11 (Comp OFF) — 11.4–14.9. ватт.
- В тесте 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.
Нагрузка на 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
© OpenNet
