Works on Windows 2000, XP, 2003, Vista, & 2008 (32bit & 64bit)
v1.3.0
Majorgeeks.com
Mirror 1
(Direct Download)
Setup File Info: (1.70 MB) (MD5 Hash -
449435315CD133691A03354BA116C163)
What is MD5 hash? MD5 hash is a code made from every byte of the file, if the
file is different in any way the md5 hash will change.
(HashTab is a great
easy tool to use to check the md5 hash of files)
Zip file, non setup (10.7kb)
(Per user request I have made a zip file with just Cleanmem itself. No setup,
this is for people who wish to run Cleanmem off a thumb drive or cd or even
across the network. The only files Cleanmem requires is the Visual Basic 6 run
time files, which are already in xp and above by default. Then what does the
setup contain? It contains of course Cleanmem, the scheduler files and the vb6
sp6
runtime setup which is for systems that don't have the runtime files.)
v1.3.0 Added a only list to give the user more control, if a person wishes to have Cleanmem only clean certain processes all they have to do is add them to the list. If the list is blank Cleanmem will clean all processes, of course skipping ones in the ignore list.
v1.2.1 Update Notes: I have updated the program setup to make the scheduled tasks better. On some machines they werent running and required the user to simply reset the settings for it to work. Hopefully this is now taken care of.
V1.2 Update Notes: Per user request I have added an ignore list that users can edit. This ignore list will tell cleanmem to skip any process that is listed in the list. The user who requested this wishes to run cleanmem on all their servers but they have a process they don't like touched, by anything. So to make them feel better and at ease I have added this option in. - ShaneV1.1 Update Notes: I removed the program from running as a service which will stop the event viewer errors and also I redid the code making it more efficient and about half the size.
---------------------------------------------------------------------------------------------------------------------------
PLEASE READ: (10-01-2008)
Ok for once and for all I am going to explain in detail how Cleanmem works,
why it works and how it can & can not make a difference in your system.
Every now and then as I go across the net I find forums and pages talking about Cleanmem, and to be honest I am truly surprised to see the people throwing fits about the program being a memory cleaner and how if it is a memory cleaner it must not work! Yet they never even try it. Then when I come across pages like on www.raymond.cc who actually took the time to try it and test it makes me feel like my work is appreciated by my fellow geeks & techs as he took the time to try it, he didn't judge before hand. Yet reading comments on his site you will find people shocked it works and others saying it cant work and they didn't try it.
I also get emails of people asking me how it works, and so I decided to make this section to explain how Cleanmem works. So now any questions should be answered and all the people out there who don't even bother testing the program will have no room to talk. Its amazing how a free program I originally made for my customers has been such a headache and a pleasure at the same time. You've got to love the internet.
So now lets start with how Cleanmem works. Cleanmem is very small as it doesn't need to do much. First off Cleanmem doesn't clean the memory from the processes itself! It asks Windows to do that. When the program starts up it grabs a list of running processes. It then grabs the ID of each process and calls the Windows API EmptyWorkingSet for each processes, Cleanmem of course checks the ignore list and skips those processes. Then Windows cleans the process, and once all the processes have been cleaned Cleanmem closes itself.
Well that's the part that seems to freak some people out, if the memory is being cleaned then the process itself will suffer! the memory will be pushed to the hard drive! the world will end! And guess what they are wrong. So let me explain why. The API call only removes memory no longer being used by the process. It doesn't touch memory in use. Here is an example from a visual basic programming stand point.
Dim I as long
I = 20000
Done. Now 'I' has been set as a long number, it has now taken a spot in memory. It then loads the 20000 into memory. At the end of the call the memory is no longer used but still being taken up by the program because I didn't clean it up! A lot of programs do this, they take memory but don't always cleanup after themselves. Well the API is like a little house cleaning. It removes all safe unused memory. When the process runs the function again the memory is then taken again without any difference in performance to the program because it would do it anyways, it wont reuse the old memory, this is why you see program climb and climb in memory usage as you use them. So why let all the unused memory just sit there?
Here is an example, I loaded of my Age Of Conan game, it was using about 600mb of memory, when I run my Cleanmem the memory only lowers to about 500mb, and the game doesn't miss a hit, why? because that 500mb of memory was currently being used and windows didn't touch it, only the memory left over was removed, which isn't going to touch the games performance since the memory wasn't in use. This is also why the page file doesn't grow, cause no memory is being moved away from the process.
Will you see performance increase? Yes if a lot of your memory is being eaten up, plus keeping the processes cleaner adds a small performance increase when dealing with memory. But if you have a butt load of memory like I do you wont see amazing increases in performance, but if your running low on memory it makes a big difference.
If you have a lot of memory why use Cleanmem? Well I use it cause I like my system running tight and clean. Just because my system has a lot of memory doesn't mean I want things sucking it all up if it isn't even using it. That's why I made Cleanmem sort of a set it and forget it. I never need to worry about a program having memory leaks or not cleaning up after itself.
So what I did with Cleanmem was take a built in Windows API and made it easy and automatic to keep no longer used memory free. The program is free, the setup is easy and life is good. So if for some reason you don't want to use Cleanmem, that's fine. I'm not trying to push a free program on people, I could care less if someone doesn't want to use it. But for those of you that do use it I'm glad you find it useful and I'm here if you have any questions or needs.
A quick note on the API call itself. This is the same API used by Microsoft in its empty.exe in the Windows 2003 Resource kit. This is also the same api that all .Net programs use by default when you minimize them and their memory lowers. So now instead of being just for .Net, Cleanmem lets you use it on all your programs.
I hope this answers all questions and helps people understand once and for all about Cleanmem.
Take care!
Shane
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
Personal note (09-26-2008): The debate on whether memory cleaners are fake, make the
system worse, and anything else you can think of still rages on. But its getting
really old that people keep shooting down Cleanmem and they haven't even tried
it! The program is free, if you want to know if it works, then just try it! The
program pushes nothing to your page file and doesn't slow the system down at
all. Other memory cleaners use a trick of using up all the memory in the system
forcing windows to release some of the memory from the processes and move it to
the page file. My program doesn't do that, it uses a windows API.
I actually read this statement from a forum where people where going off about things they have no clue about.
Quote: "(( CleanMem uses EmptyWorkingSet(), which is the
same as the SetProcessWorkingSetSize false-trick.
Basically useless; all processes will have their working sets trimmed, which
very likely means flushing stuff to your pagefile. Including the apps you are
currently using, which will then have to re-read their stuff back from the
pagefile. ))"
But the truth is,
http://msdn.microsoft.com/en-us/library/ms682606(VS.85).aspx
EmptyWorkingSet Function
Removes as many pages as possible from the working set of the specified
process.
http://msdn.microsoft.com/en-us/library/ms686234(VS.85).aspx
SetProcessWorkingSetSize Function
Sets the minimum and maximum working set sizes for the specified process.
SetProcessWorkingSetSize does force memory to the
page file because it limits how much memory the process can have.
EmptyWorkingSet is a cleanup api from Microsoft that doesn’t limit anything it
simply removed the unused.
This is the same API call Microsoft uses in its
memory cleanup program in its resource kit. So if you have any doubts then just
try the program out and make your judgment from actually using the program and
not by a stereo type set by crap programs and the people burned by them.
-Shane
---------------------------------------------------------------------------------------------------------------------------
What MajorGeeks had to say about my program:
"Your loosening up unused memory on application frankly
works very well. Since this installs unobtrusively and is automated at no
memory loss, we decided that some people might love it. Of course many
people think these programs are bogus, hence the reference to the "memory
debate". Majorgeeks has not added a memory freeing application in years. I'm
now glad I did simply because people can debate if it works or not (it does)
but the ability to try it, then remove it is important. But for us to add
this program was a huge deal simply because they are rarely accepted. Your
passion helped it to happen.
I beta test a lot so this is helpful. I also notice it freed up memory from
app's that I hardly use. This means, to me, that dozens of app's I rarely
use can free up memory for others. Overall, on my 2 gig system, I was able
to free up about 200 megs, until I run those programs again, although most
were already running or would not be run again meaning that 200 megs was
freed.
Tim Tibbetts
http://www.majorgeeks.com"This tool is free.
Take care!
-Shane


Recent comments
1 hour 36 min ago
18 hours 11 min ago
3 days 11 hours ago
5 days 3 hours ago
5 days 8 hours ago
4 days 16 hours ago
5 days 11 hours ago
1 week 6 days ago
1 week 6 days ago
1 week 6 days ago