Just here to share some of my experience. In modern operating systems, as many of us commentators have described, memory access has been optimized to a degree that a simple user mode tool could not put much improvement to.
In most modern operating systems, the memory architecture is grossly divided into real memory and virtual memory, or swap in the Linux/unix sense. Memory can be used by program, caching, or being free. Memory is divided into "pages" for organizational purposes. The priorities are given to frequently assessed pages to be kept in real memory. When some of the memory pages are infrequently used, what happens is that the operating system will move it into the virtual memory space to allow better use of the memory. How frequent this happen depends on the swappiness of the system (this is actually a parameter you can set in the Linux kernel options!) and then the memory can be used for better purposes for example for another software which need frequent memory access.
What is being done by these programs has been explained by others above - allocatng a big chunk of memory and freeing it. This is counter productive and will cause even frequently accessed pages to be swapped put of memory, and any further access of those pages means retrieving it from slow, magnetic stores.
Nowadays most OS would dedicate most of the free memory for the use by the caching subsystem - and they ate pretty good at doing it. So by all means don't try to modify the behavior even if you are long term kernel hackers...
Most books on memory system will tell you that free memory. They are very correct and remember, leaving the free memory as cache is much better than leaving them as free memory. One caveat though is that for interactive systems a small margin of free memory would allow for better responsiveness.