Linux Applications

How Do I Memory Optimize GNOME

In Linux, you have many options to switch your desktop environment. For some, one reason will be memory utilisation. Window Managers such as i3, regolith and DWM does a great job of being lean but what if you are used to GNOME?

How heavy is GNOME?

Many see GNOME as heavy on resources, this can be shown by measuring the amount of memory and CPU it uses but is it worth it? Other Desktop Environments are designed to be lighter, but you may be using the features. This does not mean that your computer is bogged down by GNOME alone, to make sure, you need to measure what is running and how much load it takes. Some applications, think graphics, simulations and compiling, can drain your system of resources in a heartbeat. Make sure you know what is the problem. No blame game, find facts.

How do you check the load?

To find the facts, you need tools to check the load. Some of these are graphical, some are command line. Depending on your needs, and habits, you may prefer different options. Here you can see what is available.

System monitor, this software shows the whole system in a graphical form. You can also drill down to specific applications.

Figure 1: System Monitor in Action

This gives you a view so you can see what is going on. On the command line, you have commands that gives a single result and the ones that stay open, viewing the situation.

The first is ‘free’, this shows how much memory you have free and how much is used. Use this command to see how much swap you use. It is very common that swapping itself slows your computer down.

The most similar to the system monitor is ‘htop’, this software starts on the terminal and covers all of it. This tool shows all processes and the overall swap and load values. Use this to identify the memory hogs.

You can sort according to memory usage, CPU and time on the system. Using the time option, you can find the ones that are started at start.

Where are those pesky programs?

Which ones are auto started? With the tools mentioned above you can identify which ones are the biggest thieves. You will have any the auto started applications available in ~/.config/autostart/ and ~/.config/autostart-scripts/. Only the former is usually filled with anything, few use the scripts. The autostart directory has links to desktop files. This way you can just remove the links to stop it from starting without removing the application from your system.

Checking the Extensions

Many extensions are not that well tested, check how much memory and load they need. If you have heavy load, you can easily kill all extensions with a click in the Tweak tool.

Figure 2: Turning of Extensions is easy in GNOME Tweaks!

This is a good place to start. If you find that it helps, you can turn off one at a time to hunt it down.

Where can you trim?

Best places to trim are extensions. You can also trim down your theme, but this is usually futile since it has little bearing on the performance. To make sure, switch to a high contrast theme, they have simple icons. An odd thing that may take your CPU is the clock, sometimes it makes a difference just to turn off seconds.

How much can you trim?

You can remove pretty much all the extensions, but the main system that comes with GNOME is a little tricky to trim down. Evolution is one culprit, the designers have put dependencies to Evolution from GNOME. This means removing Evolution, removes GNOME! Odd, if you want to use another email and calendar solution, or none. You can, however stop the execution of it by setting the permission bits. Check out the solution by Leon Manukyan.

If you want to get really crazy, you can switch out the gnome-shell, check out Regolith!

Some common problems

As mentioned earlier, the extensions can cause problems, they are not tested with your particular system so you may run in to compatibility problems.

Many lagging problems occur in Mutter, which is the underlying compositor. There are also blocks and stutter in the screen on occasion when you use dual monitor and Wayland. These problems are known faults, fixed in Gnome 3.36.

Tracking down faults

Most fault tracking requires tracing and special tools, you have them all available but you need to practice to use them. If you want to know more, check out the tools that the maintainers use (Stochastic).

If you think you have too many new or old programs, these are the important directories to look inside. They get big though, so settle down and take notes and be prepared to ask questions.

~/.config ~/.gconf ~/.local

To fix overload due to the clock, change this value using gsettings:

gsettings set org.gnome.desktop.interface clock-show-seconds false

Conclusion

You can do many things to get your GNOME session to take a little bit less memory and perhaps less load on your CPU. However, some things are just design flaws that you need to wait for a solution or join the developers and improve it yourself. They always appreciate input, so start by learning how to report faults the correct way. Good trouble reports speed up resolution time.

About the author

Mats Tage Axelsson

I am a freelance writer for Linux magazines. I enjoy finding out what is possible under Linux and how we can all chip in to improve it. I also cover renewable energy and the new way the grid operates. You can find more of my writing on my blog.