Игорь Любунчич (Igor Ljubuncic), до 2024 года отвечавший в компании Canonical за продукты, связанные с высокопроизводительными вычислениями,провёл тестирование производительности и энергопотребления сеансов KDE Plasma 6.4 на базе X11 и Wayland. В конце июня Игорь опубликовал обзор возможностей KDE Plasma 6.4, в котором пришёл к выводу, что сеанс на базе Wayland уступает в производительности и больше нагружает CPU и GPU, чем сеанс на базе X11. В серии новых статей Игорь попытался более глубоко протестировать производительность обоих сеансов.
Изначально было отмечено, что при тестировании на ноутбуке Lenovo IdeaPad 3 с интегрированным GPU AMD в сеансе Wayland независимо от активности CPU постоянно нагружен примерно на 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 Neon. В тесте с воспроизведением 4K видео в VLC нагрузка на CPU при использовании X11 с выключенным композитингом составила 3.72%, X11 со включённым композитингом – 9.8%, Wayland c Color Accuracy (CA) – 25.71%, Wayland в режиме эффективного потребления энергии (PE) – 31.51%. Таким образом нагрузка на CPU при использовании Walyand оказалась в 8-10 раз выше, чем при использовании X11.
При использовании Walyand также зафиксирована генерация на 5-16% больше прерываний. Разница нагрузки на GPU была в пределах 2% отличий: Wayland (PE) – 56.33%, Wayland (CA) – 57.33%, X11 (Comp ON) – 57.98%, X11 (Comp OFF) – 56.81%. В плане энергопотребления Wayland потребил больше энергии на 8-49%: Wayland (PE) – 13.8-20.4 ватт, Wayland (CA) -13.8-14.1 ватт, X11 (Comp ON) – 10.7-12.1 ватт, X11 (Comp OFF) – 11.4-14.9. ватт. В тесте WebGL Aquarium результаты для Wayland и X11 оказались примерно одинаковыми: Wayland (PE) – 16-38 FPS, Wayland (CA) – 18-37 FPS, X11 (Comp ON) – 16-42 FPS, 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.