I am lucky enough to have a very generous uncle and aunt, who recently wanted to buy me a new computer. In our conversation we talked a little bit about what kind of hardware requirements I had, and they were a bit confused when I told them that 8 Gigabytes of RAM was more then enough for my needs. My uncle, a Windows user I might add, claimed that he needed a workstation with a least 32 Gigabytes of RAM, since he needed to have many windows open at the same time across multiple screens. These windows ran applications like web browsers, PDF readers and documents being edited. Now in my workflow, I too run many windows open at the same time across multiple screens, including web browsers, PDF readers and documents being edited, but I seldom exceed a hundredth of that amount of memory. It got me thinking.
How much memory do various applications really use, and is it possible to save substantial computer resources by just changing a handful of application habits? Of course personal tastes and work requirements vary, so it's impossible to make any definitive guide, but the following is a list of general recommendations. If you drop the AVOID applications mentioned here, you will likely not use even 1 GB of RAM under a heavy workload, and if you adopt the RECOMMEND'ed ones, you will likely use under half a GB under heavy workloads.
Now you may be thinking; why? I have 8 Gigabytes of RAM, so why would I want to use 1, wouldn't it be a waste to have 7 GB unused? Well, no. That's a bit like saying that unspent money in the bank is wasted. It is actually very wise to modesty spend less then your income, not only do you save up for a rainy day, but it significantly reduces economic stress. Making a habit of using less memory will also make hardware specs largely irrelevant, you can be productive in front of any and all computers, even throw-away laptops that nobody wants. Also, having the extra memory does not hurt in situations where you need to do heavy lifting, compiling software or running virtual machines for instance. There are other benefits as well, running lightweight applications means that you have a very snappy system. Light programs usually have light manuals, and its significantly easier to debug them and send a patch upstream. Simple programs simplify your life. So, without further adieu, here is the RAM dietary program:
Seriously, why on earth would you use Windows..? There are literally thousands of better alternatives out there, just pick one.
Now, I know it's hard, but changing your gaming habits may be the single most important step in reducing memory requirements. Having a retro streak will be helpful ;)
This is not a joke. Not only is it possible to do professional programming using basic UNIX tools, but it is arguably not possible to do it otherwise. Using bloated IDE's beyond your understanding, is a sure way to generate bloated code beyond your understanding. Keep things simple, for your own benefit, as well as others!
I have yet to see a lightweight graphical music player on UNIX-like operating systems. In fact, only a few use less memory then VLC! (eg. Potamus or DeaDBeeF) If you have to use a graphical program, VLC is a fair option, otherwise there are a ton of good and light command line audio players.
MPlayer is the lightest of the opensource video players, but it will not play every media file or DVD. The newer MPV fares better, but VLC is the one to beat. It has large dependencies due to its Qt dependency, but the actual memory usage is not much worse then MPlayer. If you have to use a solid multimedia player with a graphical interface, VLC is the go to app.
Understandably, new users often feel uneasy about the command line environment, and to be sure, it cannot replace all GUI tasks with ease. But text oriented tasks, such as PIM, are handled with an efficiency and flexibility that no GUI solution is even close to. If you want to increase your efficiency, get comfortable with the command line!
One challenge in making the switch from a big desktop to a standalone window manager, beyond the boredom aspect, is that you do not get a host of desktop utility programs, and often there are no good alternative lightweight GUI applications available. You can almost always do what you need though in a humble terminal, with just a little bit of know how, see Desktop chores in the Terminal below.
This is probably the hardest category to give any meaningful recommendations to. The modern web is a beast, and there just isn't any good alternatives out there. Lightweighters, such as Dillo or links, will not render anything beyond pure HTML. Midweighters, such as Midori, GNOME Web (aka. Epiphany) or Konqueror, has support for JavaScript and the like, but in practice a great many sites will not render correctly. And the memory usage of these midweighters is actually bad enough that I can't really recommend them in the first place. Your best bet is to try to avoid the internet as much as humanly possible. For example, download videos, music and documents, using wget or transmission-cli, and use these files with dedicated video, audio and document applications (eg. download Youtube videos with youtube-dl and watch them with mplayer). Use dedicated email, chat, office programs and games, rather then online solutions, and so on. Good luck, your gonna need it!
Update: youtube-dl seems somewhat dormant, you might have better luck with yt-dlp (or just play the URL directly in MPV - which uses yt-dlp).
Update: Since XPDF moved over to Qt as its framework (version 4+), it is actually fairly bloated. Evince (GNOME Document Viewer) is probably the lightest graphical PDF viewer nowadays.
If you don't mind being a bit weird, groff is probably the lightest office tool you can find, and it can do more then people think. Of course, nothing beats plain text.
Ironically, top was a memory hungry tool in the olden days. Running it to find out what programs were hogging the system in the late 80's, top itself would be Public Enemy No. 1. The "top problem" is not so critical today, but if you get a kick out of lightweight solutions, you could run: ps -eo '%cpu %mem command' --sort=%cpu | tail*
As with the web browsing category above; there are no "light" VOIP solutions. The only way to save computer resources here, is to communicate by alternative means. If you have to use VOIP, use dedicated software (eg. Zoom or Skype), not a browser solution (eg. Google Meet).
Better yet, just do your file management with standard tools; cd, ls, cp, mv, rm...
Again, learning to use standard command line tools is the most efficient solution.
You can often do casual chores in the shell with simple conventions. For example, do you need a todo list? Just write one in vi (nano is a good alternative if your new to Linux/UNIX). Need to mark the calendar? Just cal > calendar, and edit this file in vi. Need a phone book with contact information? Just write it in vi and grep for the name you want. Need a password manager? Just write your passwords in vi, encrypt it with gpg2 --symmetric, to search the database gpg2 --decrypt | grep it. Need to quickly jot down a sentence, and have the computer remind you of it later? Just add these two lines to your ~/.bashrc file:
alias note='echo "$@" >> $HOME/.notes' if [ -f $HOME/.notes ]; then cat $HOME/.notes; fi
You can now jot down a quick reminder with note remember to buy milk!, and you will be reminded of this whenever you login to your machine, until you delete the note (eg. rm ~/.notes). There are no icons or start menus in the terminal, but as the above example show, it is very easy to create your own commands (or "launchers" if you will). Creating menus is also quite possible if you want to, look up the select command in your shell's manual for instance. I am sure you can think of many useful conventions that are better honed to your own idiosyncrasies :^)
It is possible to go even lighter, by dropping X all together and do your work in the text console, or TTY. In terms of memory usage, there isn't really much difference between various Linux distros and BSD variants on the desktop, but on bare TTY you can really notice it! A heavy workload with dozens of text and curses applications on a BSD TTY session, will hardly use even 100 Mb of RAM. And you can go even lighter then that: A heavy workload in Plan 9 or KolibriOS* will use about 50 Mb of RAM**, despite being graphical desktops! Now, these are very obscure operating systems, and I do not generally recommend then as a daily driver. But it is fun to know that a graphical desktop with many windows open, running web browsers, PDF readers and documents being edited, is quite possible using only 32 Mb of RAM, next time you hear a Windows user complain that 32 Gb doesn't quite cut it...
*) Many who see the colorful KolibriOS Desktop using few Megabytes of RAM, will assume that assembly programming must be amazingly efficient. That conclusion is wrong. There are alternative operating systems written in higher level languages that can compete (eg. Inferno). The reason KolibriOS is so efficient, is not because it is written largely in assembly language, but because it is written from scratch. It avoids the truck loads of legacy junk that plague mainstream systems.
**) Well... not counting filesystem caching and internal kernel memory, but that is usually excluded when UNIX and others measures memory, so I feel it's only fair to doctor these numbers in a similar way.