Пользуюсь окружением рабочего стола KDE с момента выхода версии Gnome 3 и за многие годы успел попользоваться сеансами X11 и Wayland. Последние несколько лет дистрибутивы начали продвигать и использоваться сеанс Wayland по умолчанию, а переключится на X11 можно было по желанию. Сейчас же идут разговоры что бы и вовсе отказаться от X11.
Последние несколько лет я ощущал, что в сеансе X11 система как будто отзывчиве и стабильнее работает, но проводить свои личные тесты и измерения мне не хотелось. И тут я наткнулся на статью, где такие измерения производительности были сделаны человеком ранее отвечавшим в Canonical за проекты высокопроизводительных вычислений. Им было проведено тестирование производительности и энергопотребления сеансов KDE Plasma 6.4 на базе X11 и Wayland. Он заметил, что сеанс на базе 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.