Memory management in any operating system is unimaginably complex. It’s either the stuff of nightmares or pure magic, depending on who’s talking about it.
From what you describe here, I actually don’t see a problem. That may sound weird, but I’ll talk through why I feel that way.
Become a Patron of Ask Leo! and go ad-free!
You mentioned that you are being forced to reboot. How? Are things actually failing? If so, then you have a problem.
If not, are you only rebooting because you see your memory getting smaller?
If you didn’t reboot, I bet that nothing would break. Everything would work exactly as it’s supposed to and it would continue to work appropriately.
You see, understanding how much memory is free in Windows is one of those things where you simply can’t get a straight answer. Not from Windows, the tools, or even the people that understand how it works. That’s because Windows memory management is so incredibly complex.
How Windows uses memory
Windows can appear to use more memory over time. But I’ll call it a kind of an opportunistic use of memory: memory that Windows uses, but doesn’t actually, absolutely, need. If Windows turns out to need memory for something else later, it can free something up.
For example, let’s say you run Notepad1. When you run this program, memory is used for both the program and its data. When you close the program, you’d expect that all that memory would be freed.
In reality, Windows actually tries to be a little bit smart, just in case you soon run Notepad again. Even though you’re done, while it frees the data that had been used by Notepad, it leaves the actual Notepad program in memory.
That memory appears to be in use because Notepad is still in its memory. From your perspective, it’s not really being used because you’re not running Notepad. Yet.
If you do run Notepad again since the program is already in memory all that Windows has to do is allocate space for the data that Notepad might use. It doesn’t actually have to read the program from disk, so Notepad appears to “load” more quickly.
Now, let’s say you don’t run Notepad again, but Windows left it in memory just in case you did. If you then run some other program and Windows determines that it’s running out of memory, it will remove the Notepad from memory since it knows no one is using it to make room. Later, if you do run Notepad, Windows can read from disk. That gives you the extra memory that this other program wants to use.
Complex, but functional
This is a really simple, and in fact over-simplified, example. Windows works exceptionally hard on these kinds of opportunistic memory-use scenarios for more than just program loading. Memory allocation, file reads and writes, even Windows own background processes are all trying to make use of memory as efficiently as possible. And in this case “efficiently” means finding that balance between performing tasks quickly, perhaps by using more RAM, and making room for other programs as needed by freeing up some of that RAM.
Not only is it the stuff of nightmares, but it is amazingly well done. The speed that you see in Windows today is actually pretty darned incredible given its incredible complexity.
Unless there’s something behind this comment that you made about being forced to reboot, I wouldn’t worry about anything. I would not try to interpret what free memory means. It’s really too complex a concept to be useful for those kinds of decisions.
I wouldn’t worry about things unless there’s a specific problem.