The memory used by a program should be freed automatically by the kernel when the program exits. In your case, what happens if you run analog+dnstran+reportmagic multiple times until your memory get 'exhausted'?
My guess this is actually a feature of Linux, Linux use memory rather aggresively. The same thing happens here, when I reboot my machine, the memory usage is very low. When I run some standard processes, the memory usage rise, but if I kill those processes, it always won't get back to its initial state.