It seems most people don't know how to measure a program's
memory usage. Doing a ps and looking at SIZE or RSS totally
does not cut it.
Here's how to do it right (in my opinion):
First you need to make sure your system is relatively
quiescent, and memory load won't be randomly jumnping
around. Now run `top'. Look at the memory and swap free.
Record these numbers.
Now run the program you want to check. Keep watching `top',
and see what the numbers settle at. Compute the difference.
This is the only real way not to be fooled by thinks like
shared libraries, buffers, mmap'd I/O, memory shared by
multiple kernel threads that show separately in ps, other
sorts of shared memory...
Of course, this only measures one prorgram. If shared
libraries are getting used a lot, it's best to measure a set
of programs meant to be used together all at once, since a
lot of memory will be shared between them. This is the major
blunder a lot of people make. Measuring one program that
uses lots of shared libraries, if you are going to use any
of the others, penalizes the program unfairly for being a
good code reuse citizen.
I think I have gotten infected with the Advogato Malaise
that has been going around lately.
Bring out the Iron Chefs!