This is really strange to me because, like you, I thought OSX's native memory management ought to be optimal and tools like this are just placebos.
This is really strange to me because, like you, I thought OSX's native memory management ought to be optimal and tools like this are just placebos.
It actually forces OS X's native memory management to kick in.
It does this by using an obscene amount of memory for a very short amount of time. This forces OS X to clean up the existing RAM in use as the RAM used by Memory Cleaner builds up dramatically.
In this way its partially cosmetic since your RAM would be cleaned up if you used more of it anyway.
Perhaps if there was a significant performance hit incurred when dropping caches you may want to do it more eagerly.. but is there?
However if you have a 4GB computer and generally single task, then a memory clean tool can work in your favour.
I have several virtual machines that start up overnight and close down in the morning, at that point I want my memory flushed to start a fresh with my applications not the VM's cached data, which wont be needed again for another 12 hours.
This is of course a corner case and just last week I upgraded to 16GB of RAM mitigating the requirement. But there is no one size fits all memory manager out there.
It looks like disk cache expiration is slow and tends to kick in when it's a bit too late. With the speed that modern apps chew through memory, I'm sent into a swap thrash and get sluggish response and beachballs.
MemoryKeeper on the App store seems to mostly clear the file cache and do some -fu to compact memory (maybe it's a memory defragment, the docs are a little lacking in technical details.) When I manually run it, everything runs great until the free memory dries up and I'm back in that alloc/swapthrash/cachepurge cycle again.
I wrote a tiny C program for linux to force cache expirations (in a very sloppy but reasonably portable way) back in '98 that I've started using again on osX, it fixes the issue and runs quite a bit quicker than MemoryKeeper. I can make it available if anyone else wants it.