33> Production benchmark report for wallpaper switching performance.
44> Lower latency, RAM, and CPU values are better.
55
6- - Date (UTC): 2026-09-16 15:25:28
6+ - Date (UTC): 2026-09-18 09:31:17
77- Host: nyx
88- Wallr client binary: ` /home/programmersd/Projects/github/wallr/target/release/wallr `
9- - Benchmark IPC socket: ` /run/user/1000/wallr-benchmark-20260916-152528 .sock `
10- - Wallr version: wallr 0.5 .0
9+ - Benchmark IPC socket: ` /run/user/1000/wallr-benchmark-20260918-093117 .sock `
10+ - Wallr version: wallr 0.6 .0
1111- awww version: awww 0.12.1
1212- Wayland display: wayland-1
1313
2626
2727| Program | RAM (MiB) | CPU | Threads |
2828| :--| --:| --:| --:|
29- | Wallr | 38.0 | 1.8 % | 3 |
30- | awww | 2.2 | 0.8 % | 1 |
29+ | Wallr | 29.3 | 2.7 % | 3 |
30+ | awww | 26.3 | 2.9 % | 1 |
3131
3232| Program | RSS (MiB) | PSS (MiB) | Anonymous (MiB) | Private (MiB) | Non-anonymous RSS (MiB) |
3333| :--| --:| --:| --:| --:| --:|
34- | Wallr | 38.0 | 32.0 | 5.7 | 30.7 | 32.4 |
35- | awww | 2.2 | 0.2 | 0.1 | 0.2 | 2 .1 |
34+ | Wallr | 29.3 | 21.7 | 5.5 | 19.5 | 23.8 |
35+ | awww | 26.3 | 16.4 | 0.2 | 8.4 | 26 .1 |
3636
37- > 🏆 Winner (idle baseline RAM): awww: 17.29 × leaner than Wallr (2.2 MiB vs 38.0 MiB).
38- > ℹ️ CPU snapshot (idle baseline): Wallr 1 .7% vs awww 0.8 % (instant sample, noisy).
37+ > 🏆 Winner (idle baseline RAM): awww: 1.11 × leaner than Wallr (26.3 MiB vs 29.3 MiB).
38+ > ℹ️ CPU snapshot (idle baseline): Wallr 2 .7% vs awww 2.9 % (instant sample, noisy).
3939
4040## ⚡ Hot same-image static latency
4141
@@ -44,10 +44,10 @@ This measures repeated static requests with transitions disabled.
4444
4545| Command | Mean [ ms] | Min [ ms] | Max [ ms] | Relative |
4646| :---| ---:| ---:| ---:| ---:|
47- | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_04.png' --duration 0 --no-theme ` | 21.4 ± 1.9 | 18.6 | 25.9 | 1.00 |
48- | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_04.png' ` | 24.6 ± 1.6 | 22.0 | 27.5 | 1.15 ± 0.13 |
47+ | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_04.png' --duration 0 --no-theme ` | 21.2 ± 2.6 | 17.3 | 27.6 | 1.00 |
48+ | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_04.png' ` | 25.8 ± 1.9 | 22.6 | 29.8 | 1.22 ± 0.17 |
4949
50- > 🏆 Winner: Wallr: 1.15 × faster than awww (21.4 ms vs 24.6 ms).
50+ > 🏆 Winner: Wallr: 1.22 × faster than awww (21.2 ms vs 25.8 ms).
5151
5252## 🚀 Zero-duration static path
5353
@@ -57,10 +57,10 @@ Wallr uses `wl_shm` when the output has not used the GPU presentation path; othe
5757
5858| Command | Mean [ ms] | Min [ ms] | Max [ ms] | Relative |
5959| :---| ---:| ---:| ---:| ---:|
60- | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_04.png' --duration 0 --no-theme ` | 21.6 ± 2.5 | 18.7 | 27 .8 | 1.00 |
61- | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_04.png' ` | 24.9 ± 2.1 | 22.2 | 29.9 | 1.15 ± 0.17 |
60+ | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_04.png' --duration 0 --no-theme ` | 21.5 ± 2.6 | 16.9 | 25 .8 | 1.00 |
61+ | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_04.png' ` | 26.0 ± 2.0 | 23.6 | 30.8 | 1.21 ± 0.17 |
6262
63- > 🏆 Winner: Wallr: 1.15 × faster than awww (21.6 ms vs 24.9 ms).
63+ > 🏆 Winner: Wallr: 1.21 × faster than awww (21.5 ms vs 26.0 ms).
6464
6565## 🔄 Distinct-image switch latency
6666
@@ -70,24 +70,24 @@ This measures changing to several different images.
7070### 🖼️ image_04.png
7171| Command | Mean [ ms] | Min [ ms] | Max [ ms] | Relative |
7272| :---| ---:| ---:| ---:| ---:|
73- | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_04.png' --duration 0 --no-theme ` | 24.3 ± 3.0 | 20.5 | 28.4 | 1.00 |
74- | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_04.png' ` | 25.0 ± 2.6 | 23.1 | 29.4 | 1.03 ± 0.16 |
73+ | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_04.png' --duration 0 --no-theme ` | 19.0 ± 2.1 | 16.9 | 21.8 | 1.00 |
74+ | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_04.png' ` | 26.8 ± 1.5 | 25.0 | 28.9 | 1.41 ± 0.17 |
7575
76- > 🏆 Winner: Wallr: 1.03 × faster than awww (24.3 ms vs 25.0 ms).
76+ > 🏆 Winner: Wallr: 1.41 × faster than awww (19.0 ms vs 26.8 ms).
7777### 🖼️ image_05.png
7878| Command | Mean [ ms] | Min [ ms] | Max [ ms] | Relative |
7979| :---| ---:| ---:| ---:| ---:|
80- | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_05.png' --duration 0 --no-theme ` | 42 .2 ± 42.7 | 20.8 | 118.5 | 1.00 |
81- | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_05.png' ` | 130.3 ± 1.0 | 128.9 | 131.4 | 3.09 ± 3.12 |
80+ | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_05.png' --duration 0 --no-theme ` | 18 .2 ± 1.4 | 16.7 | 20.3 | 1.00 |
81+ | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_05.png' ` | 130.0 ± 3.4 | 127.8 | 135.8 | 7.13 ± 0.57 |
8282
83- > 🏆 Winner: Wallr: 3.09 × faster than awww (42 .2 ms vs 130.3 ms).
83+ > 🏆 Winner: Wallr: 7.14 × faster than awww (18 .2 ms vs 130.0 ms).
8484### 🖼️ image_06.png
8585| Command | Mean [ ms] | Min [ ms] | Max [ ms] | Relative |
8686| :---| ---:| ---:| ---:| ---:|
87- | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_06.png' --duration 0 --no-theme ` | 25.8 ± 3.5 | 21.9 | 30.2 | 1.06 ± 0.20 |
88- | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_06.png' ` | 24.3 ± 3.3 | 21 .7 | 29.9 | 1.00 |
87+ | ` wallr set '/home/programmersd/Projects/github/wallr/samples/image_06.png' --duration 0 --no-theme ` | 19.7 ± 1.4 | 18.2 | 21.4 | 1.00 |
88+ | ` awww img '/home/programmersd/Projects/github/wallr/samples/image_06.png' ` | 25.0 ± 0.9 | 23 .7 | 25.8 | 1.27 ± 0.10 |
8989
90- > 🏆 Winner: awww : 1.06 × faster than Wallr (24.3 ms vs 25.8 ms).
90+ > 🏆 Winner: Wallr : 1.27 × faster than awww (19.7 ms vs 25.0 ms).
9191
9292## 🎞️ Animated GIF submission latency
9393
@@ -97,27 +97,27 @@ smoothness and steady-state animation cost require a separate profiler.
9797
9898| Command | Mean [ ms] | Min [ ms] | Max [ ms] | Relative |
9999| :---| ---:| ---:| ---:| ---:|
100- | ` wallr set '/home/programmersd/Projects/github/wallr/samples/extra.gif' --duration 0 --no-theme ` | 29 .3 ± 9.6 | 21.5 | 45.3 | 1.00 |
101- | ` awww img '/home/programmersd/Projects/github/wallr/samples/extra.gif' ` | 35.1 ± 6.4 | 28 .6 | 44.0 | 1.20 ± 0.45 |
100+ | ` wallr set '/home/programmersd/Projects/github/wallr/samples/extra.gif' --duration 0 --no-theme ` | 26 .3 ± 5.8 | 20.9 | 35.9 | 1.00 |
101+ | ` awww img '/home/programmersd/Projects/github/wallr/samples/extra.gif' ` | 35.9 ± 6.0 | 30 .6 | 43.6 | 1.37 ± 0.38 |
102102
103- > 🏆 Winner: Wallr: 1.20 × faster than awww (29 .3 ms vs 35.1 ms).
103+ > 🏆 Winner: Wallr: 1.37 × faster than awww (26 .3 ms vs 35.9 ms).
104104
105105## 🧘 Post-workload resident state
106106
107107This shows memory and CPU after all wallpaper changes finish.
108108
109109| Program | RAM (MiB) | CPU | Threads |
110110| :--| --:| --:| --:|
111- | Wallr | 137.9 | 4.1 % | 11 |
112- | awww | 2.2 | 0.8 % | 1 |
111+ | Wallr | 49.3 | 4.3 % | 7 |
112+ | awww | 2.6 | 5.4 % | 1 |
113113
114114| Program | RSS (MiB) | PSS (MiB) | Anonymous (MiB) | Private (MiB) | Non-anonymous RSS (MiB) |
115115| :--| --:| --:| --:| --:| --:|
116- | Wallr | 137.9 | 124.1 | 75.7 | 116.9 | 62.1 |
117- | awww | 2.2 | 0.2 | 0.1 | 0.2 | 2.1 |
116+ | Wallr | 49.3 | 41.2 | 16.1 | 38.8 | 33.2 |
117+ | awww | 2.6 | 0.6 | 0.2 | 0.5 | 2.4 |
118118
119- > 🏆 Winner (post-workload RAM): awww: 62.46 × leaner than Wallr (2.2 MiB vs 137.9 MiB).
120- > ℹ️ CPU snapshot (post-workload): Wallr 4.1 % vs awww 0.8 % (instant sample, noisy).
119+ > 🏆 Winner (post-workload RAM): awww: 19.31 × leaner than Wallr (2.6 MiB vs 49.3 MiB).
120+ > ℹ️ CPU snapshot (post-workload): Wallr 4.3 % vs awww 5.4 % (instant sample, noisy).
121121
122122## 🩺 Daemon health
123123
@@ -127,7 +127,7 @@ This shows memory and CPU after all wallpaper changes finish.
127127
128128## 🏁 Production verdict
129129
130- > 🏆 Overall winner: Wallr: 5 round(s) won vs 3 for awww (0 tied).
130+ > 🏆 Overall winner: Wallr: 6 round(s) won vs 2 for awww (0 tied).
131131
132132Wallr and awww are optimized for different trade-offs. This run measures
133133Wallr's switching latency against awww's switching latency. It does not
@@ -141,4 +141,4 @@ Measured target: Wallr is optimized to lead in static switching,
141141zero-duration compositor commits, distinct-image replacement, and
142142duplicate-request handling. Other cases remain evidence-driven.
143143
144- Report saved to: ` /home/programmersd/Projects/github/wallr/benchmarks/wallr-vs-awww-20260916-152528 .md `
144+ Report saved to: ` /home/programmersd/Projects/github/wallr/benchmarks/wallr-vs-awww-20260918-093117 .md `
0 commit comments