Benchmarks

This is a window-manager comparison from 30 October 2026, using wmbench. The tool gives every session the same amount of work and records how much CPU the desktop spent doing it. Less CPU is better. On the paced tests the clock time is about the same for every window manager, because the client is held to a fixed rate. The score is the CPU, not the wall clock.

The machine is slab, a ThinkPad X200s running Devuan 6 and Linux 6.12.100, with two cores. Every run used a nested Xvfb at 1440x900 on display :2. The live Cyanotype session on :0 was left alone, so the measurement was not fighting the desk you actually use. Desktop CPU means the window manager plus that Xvfb. OpenGL on this server is llvmpipe, which is a software renderer. The machine has no power sensor, so watts are not in the table. The wmbench build was X11 only. Wayland was not compiled, and it was not run.

CyWM is 0.1, started the way the desk starts it, floating, with compositing off. Fluxbox 1.3.7 was installed for the test. twm was already on the machine. xfwm4 4.20.0 is XFCE's window manager. Mutter 48.7 is GNOME's, and it was started with --x11 so it would speak X11 instead of its usual display server. KWin 6.3.6 is kwin_x11, from the kwin-x11 package. xfwm4, Mutter, and KWin came up with compositing on. CyWM, Fluxbox, and twm do not composite. A compositing window manager on this Xvfb is painting in software, because a nested server has no GPU path. xfwm4 was then run again with --compositor=off. kwin_x11 was run again with compositing disabled in a private configuration, so the home configuration was not touched. The tool recorded compositing as off for both of those second runs. Mutter has no switch that turns compositing off.

Two tests are left out of the totals. render and stress ask for 1200 frames of a heavy OpenGL shader. On this server that shader runs at 0.27 frames a second, so those tests cannot finish in any reasonable time. The uncapped line is 16 seconds of the same shader, and it comes out to the same number on every window manager that reached it. This page is a different bench from the map and iconify numbers on the CyWM page. Those were taken on 25 July, on a smaller nested display.

Four more window managers came from the same apt repository, and none of them was a Wayland compositor. Openbox 3.6.1 has no compositor of its own, so it was run once. IceWM 3.7.4 in this package is built without a compositor. The tool prints that compositor line as a build string, which is why the column is simply IceWM 3.7.4, one run. Marco 1.26.2 was run with compositing off, and then with it on. Metacity 3.56.0 was run with its compositor set to none, and then set to xrender. An external compositor was not put underneath IceWM or Openbox. The question was what those window managers do by themselves.

The complete runs took 176 to 180 seconds of wall clock. Each window manager got one pass.

Total desktop CPU

Total desktop CPU, seconds. Openbox 17.65, Fluxbox 18.68, IceWM 18.91, Marco off 18.98, xfwm4 off 20.12, Metacity off 21.17, CyWM 21.24, KWin off 24.46, xfwm4 on 53.14, Marco on 53.39, Metacity on 55.65, KWin on 142.15, Mutter 189.83. Openbox 3.6.1 Fluxbox 1.3.7 IceWM 3.7.4 Marco 1.26.2 off xfwm4 4.20.0 off Metacity 3.56 off CyWM 0.1 KWin 6.3.6 off xfwm4 4.20.0 on Marco 1.26.2 on Metacity 3.56 on KWin 6.3.6 on Mutter 48.7 17.65 s 18.68 s 18.91 s 18.98 s 20.12 s 21.17 s 21.24 s 24.46 s 53.14 s 53.39 s 55.65 s 142.15 s 189.83 s 0 50 100 150 200 compositing off compositing on

Total desktop CPU, in seconds, from low to high. The scale runs to 200. xfwm4, KWin, Marco, and Metacity each appear twice, once with compositing off and once with it on. Openbox and IceWM have no compositing mode in the build that was measured, so each appears once. twm is left off the graph, because the tool recorded no total for it.

workloadCyWM 0.1Fluxbox 1.3.7twmxfwm4 offxfwm4 onMutter 48.7KWin offKWin onOpenbox 3.6.1IceWM 3.7.4Marco offMarco onMetacity offMetacity on
compositingoffoffoffoffononoffonoffoffoffonoffon
idle0.000.010.000.000.000.000.110.110.000.100.000.000.000.00
move0.941.210.721.422.8626.923.2619.960.771.211.452.281.822.51
resize0.340.380.230.474.6327.422.0217.150.250.540.475.810.635.78
drag and drop0.190.21hung0.320.725.020.754.360.170.270.260.580.330.60
popups0.400.510.280.522.2329.711.969.950.290.600.512.701.582.85
video4.604.594.574.5813.2129.794.6226.004.624.494.6413.184.6313.21
transparent window2.462.392.322.286.2433.302.3427.942.392.252.376.202.394.74
windows3.280.39not done1.522.264.780.201.460.240.310.330.790.791.30
scroll0.480.510.490.491.448.450.555.290.490.540.491.330.481.13
fullscreen4.274.20-4.289.7412.094.3725.704.244.354.2710.334.2811.77
fullscreen, bypass asked4.284.29-4.249.8112.354.394.344.194.354.1910.194.2411.76
total21.2418.68-20.1253.14189.8324.46142.1517.6518.9118.9853.3921.1755.65
uncapped, frames/s0.270.27-0.270.270.270.270.270.270.270.270.270.270.27

Desktop CPU, in seconds, except the last row, which is frames per second. A hyphen means a test that never started a measurement. twm has no total, because the tool withholds a total when any test failed or was not finished. Idle is shown, and it is not part of the tool's total.

Among the runs with compositing off, Openbox's total is 17.65 s, Fluxbox's is 18.68 s, IceWM's is 18.91 s, Marco's is 18.98 s, xfwm4's is 20.12 s, Metacity's is 21.17 s, CyWM's is 21.24 s, and KWin's is 24.46 s. Openbox is the low number because move, resize, and the windows test are small: 0.77 s, 0.25 s, and 0.24 s. IceWM, and Marco with compositing off, sit with Fluxbox. Metacity with compositing off lands just under CyWM. Against Fluxbox, that Metacity run spends the extra time on popups (1.58 s) and on move (1.82 s). Between Fluxbox and CyWM the difference is still the windows test, which covers maximize, raise, fullscreen, and minimize. Fluxbox spent 0.39 s of CPU there, and CyWM spent 3.28 s, on the same 12.4 s of clock time. On move, resize, and popups, CyWM is a little under Fluxbox. Video, the transparent window, and fullscreen sit on top of each other across the compositing-off runs. That time belongs to the X server, not to the window manager.

With compositing on, xfwm4's total is 53.14 s, Marco's is 53.39 s, Metacity's is 55.65 s, KWin's is 142.15 s, and Mutter's is 189.83 s. Marco and Metacity land next to xfwm4. Mutter will not start with compositing turned off, so there is no second Mutter column. Move and resize are where Mutter spends the time: about 27 s of CPU inside a 20 s test, which means more than one core was busy. KWin with compositing on got cheaper when the client asked compositing to step aside. Fullscreen fell from 25.70 s to 4.34 s. xfwm4, Marco, Metacity, and Mutter spent about the same CPU on both fullscreen rows, so that bypass request did not help them on this server.

twm's column is a second pass. On the first pass, drag and drop started and never finished. The tool killed that run at 10 minutes, and the tests after drag and drop did not start. The second pass left drag and drop out. Move on that pass was 0.72 s, and resize was 0.23 s. Before the hang, the first pass had measured move at 1.05 s and resize at 0.30 s. The windows test ran, and it was marked not done, because twm never granted maximize. Fullscreen never reached a measurement.

Reports

These are the tool's own writeups. Non-ASCII ruled lines in the originals were turned into hyphens, so the files stay plain text.

Cyanotype Project. Blueprint Desktop. BSD 2-clause. Not affiliated with Silicon Graphics. SGI, IRIX, and Indigo Magic belong to their owners. 1.0 is aimed at 31 October 2026.