[vox-tech] Must one free() in C?

vox-tech@lists.lugod.org vox-tech@lists.lugod.org
Thu, 9 May 2002 03:56:41 -0400


On Wed, May 08, 2002 at 09:44:09PM -0700, Micah Cowan wrote:
> I do indeed keep track of all allocated memory. Gives me that 
> feeling of "job well done".

  This reminds me of a perl script I wrote that snarfed in a whole
bunch of log data and built this fairly large hash with it (about 
a Gig of memory).  The script's data output was generated within
about 30 seconds of starting, but for some reason it took about 5 more
minutes to exit.  There was no swapping, it was just CPU bound.

  It turned out that perl was trying to delete the huge hash, record
by record, so I changed the last line of the program from 
  exit 0;
to
  kill 9 $PID;

  The program still produced the correct output, just 5 minutes faster (*).

  So I guess what I'm saying is dynamic memory is bad... err no  ;)... 
don't waste _too much_ effort keeping track of memory if it's a 
bottleneck.

    Later,
      Mike

*: There might have been a better solution.