streetfighter 2
New Member
- Joined
- Jul 26, 2010
- Messages
- 1,655 (0.31/day)
- Location
- Philly
Currently I'm writing a robust system control application which includes a memory trimming/cache flush feature which I thought would make a nice standalone app. I designed my standalone trim/flush tool off of the program found here:
http://www.koshyjohn.com/software/memclean/
Anyway, onto my program...
Memory Trimmer v1.0 Beta
Compatibility: 64-bit Windows Vista/7
Name: mem_trim_x64.exe
Size: 258KB
Version: 1.0 Beta
Date: 1/23/2011 (or 23/1/2011 if you're not from the USA
)
If you want an x86 version look here.
What it do?
Memory Trimmer allows you to very easily clean the working set memory of applications in addition to clearing the system file cache. In order to accomplish this the program uses two APIs:
Memory Trimmer does require administrative privileges. Nevertheless I do not believe that this program presents any risk to corrupting memory as these functions are called by Windows and it's applications quite regularly.
So why use it?
Dunno. I'm sure if TheMailMan78 reads this he'll say this is stupid and people who use this are the kind of people who disable the Distributed Link Tracking client
. At worst Memory Trimmer will cause any programs running in the background to draw very slowly when you try to open them (or change their state). At best it helps free up RAM for programs with built-in memory managers (that don't request extra RAM from the OS). Either way I would consider this an advanced tool by virtue of it's limited applications. I wouldn't recommend anyone use it. Fortunately for me I'm not anyone
.
How to use it?
Since this is advertised as an advanced tool I'm only going to provide limited instructions. If you run the program with "/h" argument you'll see this:
Memory Trimmer has switches
! If all you want is to flush the cache and trim working sets, simply create a shortcut to Memory Trimmer with the following arguments, "/f /t /n". If you'd like to trigger a flush and/or trim operation when you start a particular program you can use the "/r" switch. The Memory Trimmer interface provides a method of creating shortcuts which launch applications which you can see here:
You can drag-n-drop or use the Open button to select the file you want to create a shortcut to. Then check "Trim" and/or "Flush" and click "Create Auto Trim/Flush Shortcut". If everything went OK, a shortcut will be placed on your desktop. When you launch the shortcut don't be surprised if Memory Trimmer doesn't show up; that's because the shortcuts Memory Trimmer creates have the no-GUI switch ("/n") enabled. Memory Trimmer will Flush/Trim then launch the program you specified.
You can also change the poll rate of the memory usage info.
What about the source?
Like all of my apps, Memory Trimmer is open source
. It is written in win32 C++ and compiled with MinGW-w64 (an open source compiler). Furthermore, it was written using notepad++ (an open source text editor). 
The code is heavily commented and provides two batch files which automate the build. Assuming you have MinGW-w64 in PATH, you can compile Memory Trimmer simply by running either batch file. The batch file "build64.bat" compiles using ANSI and "build64_unicode.bat" compiles using UNICODE. For whatever reason the ANSI-compiled executable had to be run in compatibility mode on my Windows 7 VM, but worked fine on my actual computer. Consequently the binary I'm releasing is the UNICODE version. Memory Trimmer also uses Common Controls 6.0 and requires Administrative privileges.
Where's the compatibility?
I made an x86 version, though it's not quite as good as it's x64 sibling.
Bug reporting
Reporting a unique bug (one that someone else didn't already mention) will be greatly appreciated (and thanked) by me.
http://www.koshyjohn.com/software/memclean/
Anyway, onto my program...
Memory Trimmer v1.0 Beta
Compatibility: 64-bit Windows Vista/7
Name: mem_trim_x64.exe
Size: 258KB
Version: 1.0 Beta
Date: 1/23/2011 (or 23/1/2011 if you're not from the USA

If you want an x86 version look here.


What it do?
Memory Trimmer allows you to very easily clean the working set memory of applications in addition to clearing the system file cache. In order to accomplish this the program uses two APIs:
Code:
[URL="http://msdn.microsoft.com/en-us/library/aa965240(v=vs.85).aspx"]SetSystemFileCacheSize[/URL] - Clears the file system cache when given args (-1, -1, 0)
[URL="http://msdn.microsoft.com/en-us/library/ms686234(v=vs.85).aspx"]SetProcessWorkingSetSize[/URL] - Cleans the working set of a given process
So why use it?
Dunno. I'm sure if TheMailMan78 reads this he'll say this is stupid and people who use this are the kind of people who disable the Distributed Link Tracking client


How to use it?
Since this is advertised as an advanced tool I'm only going to provide limited instructions. If you run the program with "/h" argument you'll see this:

Memory Trimmer has switches


You can drag-n-drop or use the Open button to select the file you want to create a shortcut to. Then check "Trim" and/or "Flush" and click "Create Auto Trim/Flush Shortcut". If everything went OK, a shortcut will be placed on your desktop. When you launch the shortcut don't be surprised if Memory Trimmer doesn't show up; that's because the shortcuts Memory Trimmer creates have the no-GUI switch ("/n") enabled. Memory Trimmer will Flush/Trim then launch the program you specified.

You can also change the poll rate of the memory usage info.
What about the source?
Like all of my apps, Memory Trimmer is open source


The code is heavily commented and provides two batch files which automate the build. Assuming you have MinGW-w64 in PATH, you can compile Memory Trimmer simply by running either batch file. The batch file "build64.bat" compiles using ANSI and "build64_unicode.bat" compiles using UNICODE. For whatever reason the ANSI-compiled executable had to be run in compatibility mode on my Windows 7 VM, but worked fine on my actual computer. Consequently the binary I'm releasing is the UNICODE version. Memory Trimmer also uses Common Controls 6.0 and requires Administrative privileges.
Where's the compatibility?
I made an x86 version, though it's not quite as good as it's x64 sibling.
Bug reporting
Reporting a unique bug (one that someone else didn't already mention) will be greatly appreciated (and thanked) by me.

Attachments
Last edited: