What's a good way to analyze a long-running program for memory usage? i.e. looking for potential savings