Is systemd bloat real ? Dinit vs Systemd: Which Session Uses Less Memory with Labwc?

Is systemd bloat real ? Dinit vs Systemd: Which Session Uses Less Memory with Labwc?
labwc on dinit

SystemD hate is real in the Linux world: age-verification precedent #40954, it is often associated with bloatware, many mature linux technologies are slowly replaced with systemd-* and the mainstream linux distros accept these new standard de-facto, GNOME 50 basically can only start with systemd as init system..

Okay, some critics are definitely over the top. I mean, people who actually remember life before systemd, it really did make things easier for sysadmins and power users. But it's sad that some people got left behind because of systemd or Wayland. At the same time, keeping different standards and architectures around could slow down development and add a lot of complexity. Systemd-freedom and systemd-only are really two sides of the same coin.

So, I decided to put dinit and systemd head-to-head to see which one actually uses less memory when running Labwc, a Wayland compositor. Using very similar user services. The results surprised me.

dinit and systemd user sessions as reference https://github.com/grigio/dinit-labwc

The Numbers

Here's what I found when I checked the total memory usage (RSS) in each session:

Session Total Memory
Dinit 1,117 MB
Systemd 999 MB
Systemd actually won this round, using about 118 MB less memory than dinit. But here's the twist: systemd runs way more background services. So how does that add up to less memory? Let me break it down.

What's Eating Your RAM

The Heaviest Processes

Process Dinit Systemd
qs (noctalia-shell) 455 MB 391 MB
kgx 200 MB 112 MB
voxtype 165 MB 46 MB
labwc 76 MB 76 MB
The main reason dinit uses more memory is that it runs heavier versions of kgx and voxtype. Systemd runs lighter versions of these same tools, which more than makes up for the extra services it starts.
Labwc on SystemD

What Systemd Runs That Dinit Doesn't

Here's what's running in the systemd session that dinit leaves out:

  • syncthing (two copies) - 81 MB - this is the big one
  • avahi-daemon - 4.5 MB - network discovery stuff
  • colord - 15 MB - color management
  • gnome-keyring-daemon - 10 MB - GNOME's keyring storage
  • nmcli monitor - 9 MB - network manager
  • gdm-wayland-session - that GDM wrapper thing
  • Multiple dbus-brokers - extra DBus overhead
    Most of these you can probably live without, especially on a standalone desktop without all the GNOME bells and whistles.

What Dinit Runs That Systemd Doesn't

  • flatpak-portal - 19 MB
  • flatpak-session-helper - 8 MB
  • dinit-monitor - session monitoring
  • turnstiled - door permission service

So Which One Should You Use?

If you're chasing the lowest memory usage, systemd actually comes out ahead here. But here's the thing: you could get even better results with systemd by turning off a few services you don't need.
Here's what I'd suggest to cut down systemd's memory footprint even more:

  1. Disable avahi-daemon if you don't need network discovery
  2. Turn off colord unless you're doing color-sensitive work
  3. Don't let syncthing start automatically in your session
  4. Consider using a single dbus-daemon instead of multiple dbus-brokers
    At the end of the day, both session managers work fine with Labwc. The difference is about 100 MB, which isn't huge. But if you're running on limited RAM, every little bit helps.

Process Memory Analysis: Dinit vs Systemd

Summary

Init System Total RSS
Systemd ~1,085 MB
Dinit ~1,038 MB
Dinit is more memory-efficient by ~47 MB (~4.5% less).

Key Differences

Process Systemd RSS Dinit RSS Diff
qs 412 MB 346 MB +66 MB
kitty 123 MB 103 MB +20 MB
systemd-journald 49 MB - +49 MB
labwc 105 MB 76 MB +29 MB
systemd --user 12 MB - +12 MB
gdm-session-worker 13 MB - -
ly-dm - 5 MB -

Systemd Additional Processes

  • systemd-journald (49 MB)
  • systemd --user (12 MB)
  • gdm (12 MB)
  • accounts-daemon (10 MB)
  • gnome-keyring-daemon (10 MB)
  • power-profiles-daemon (9 MB)
  • geoclue (14 MB)

Dinit Additional Processes

  • ly-dm (5 MB)
  • cupsd (7 MB)
  • bluetoothd (6 MB)

Conclusion

Dinit is leaner because it lacks systemd's overhead (journald, user manager) and uses lighter alternatives (ly-dm instead of gdm). This results in approximately 4.5% less memory usage compared to systemd.