15

Does it discard the RAM away that was used by programs or transfer it to a page file on the hard disk? Or does it just clean up the unaddressed RAM?

6 Answers 6

19

RAM free'ers are forcing other programs to swap most of their pages out to disk (often by allocating lots of memory). If those programs don't need those pages for a while (for instance, if they are a minimized window and also not doing anything), then this will leave more ram free. Note that you don't generally get to control what's being pushed out to disk - just that something is.

The problem is that leaving RAM free isn't, in itself, useful at all. If another running program needed that RAM, then the paging would have happened at that moment, instead of when you ran the ram free'er. And the moment you want that program that's been pushed out to disk to do something (for instance, if it wakes up every 5 minutes to check your status on facebook), it's just going to swap back in to do it.

If you really have a ram problem, you have a couple of options:

1) Get more RAM. Simple, direct, possibly expensive or (depending on OS & hardware config) impossible.

2) Run fewer programs. The less things that are running, the more RAM is available for the things that are running. This also involves choosing less resource-intensive utilities. For instance, if you leave an IM utility open all the time, pick one that has a small memory footprint instead of one that has all the flashy features.

3) Get faster disks. This doesn't actually give you more ram (obviously), but if you use faster disks for your paging files, then the times involved in swapping pages in and out of memory will be lower and therefore less noticeable.

There are no other real options.

3
  • "leaving RAM free isn't, in itself, useful at all." But it prevents people whining about how Windows Vista/7 leaves minimal free RAM because it's pre-fetched information the user commonly accesses.
    – Nick T
    Nov 24, 2010 at 15:59
  • @Nick People whining about Win7 or Vista having no free RAM on a machine with plenty of installed RAM due, as you say, to Windows prefetching is a user education problem. It's one that should be countered with the argument that allocating and then freeing the memory the prefetcher was using makes the system slower as all the prefetched data will be flushed out for no good reason and will therefore not be cached when you run a new application and will also mean that the prefetcher wastes time and resources refilling the newly emptied RAM. The RAM is freed if a program needs it anyway...
    – Mokubai
    Nov 30, 2010 at 12:43
  • Windows also uses RAM as a file cache, because this speeds up the EFFECTIVE disk access speed. You'll see all sorts of ill-informed whining about this also. On many windows systems the reason so little RAM seems to be available is usually that vast amounts are being used as a "ram-disk" cache. The amount used for this is dynamic, as programs need more memory the amount used for file cache is reduced. The folks who wrote the OS were not quite as ignorant as some would like us to think. Dec 30, 2010 at 23:02
11

Basically what RAM free'ers do is that they reserve large amounts of RAM forcing Windows to swap other programs to disk and then freeing the RAM they reserved. There might be different strategies to do this, but I'm not awere of the internals.

I'd suggest to get more physical RAM if that's possible, as there will come the time when the outswapped program needs to get its share of memory back...

1
  • Windows sends a 'Low_MEMORY' message around that asks all application to free their unused caches. SQL server and file caches get cleared so you'll end up with extra free space.
    – Barfieldmv
    Nov 24, 2010 at 15:27
8

By trying to fool the operating system, it gives the impression that maybe something is being done. Such an approach is pretty much a case of robbing Peter to pay Paul.

Or... if you try and get something for nothing in the long run you get... nothing.

In other words, I regard this kind of thing as a con. If you are short of RAM, the best long term technical solution is to buy more.

2

Windows sends a 'LOW_MEMORY' message around that asks all application to free their unused data. SQL server and file caches get cleared so you'll end up with lots of extra free space. This also clears the windows file cache wich can take easily take 1 gig of space on startup.

Allocating a big chunk of memory is an easy way to trigger a LOW MEMORY message but there might be smarter systems in place.

2

Along with the other answers, older tools like RAMDoubler used to compress RAM in memory, with the obvious CPU cost on access. I think no one does this anymore, because of that access cost.

EDIT: no one.. well outside of Apple Everything old is new again. More specifically, the spread between CPU speed and speed of memory technologies (especially disk) is sooooo big that this is now a better option, especially with the electricity (read: battery) cost for hitting disk.

2
  • 1
    Memory compression never really outgrew the bad reputation it received from the SoftRAM fraud. RAMDoubler and MagnaRam were both legitimate products. The technology still exists. IBM developed both hardware MTX and software AME based memory compression and VMWare uses memory compression in most of their product line. Nov 24, 2010 at 18:34
  • 1
    This is a sensible design, and might be going into the kernel at some point: lwn.net/Articles/397574
    – Tobu
    Nov 24, 2010 at 23:54
1

They typically just force the system to use more paging files and less RAM. Since RAM is faster than hard disk, at worst case, you will see a reduction in speed. At best, you will see more RAM available, but no extra speed.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .