Memory management via fork is a good idea; I've used it in several situations (usually when I'm going to leak memory).

The problem WoodyWeaver may have is that when the child exits normally, it will still go through the ten hours of data structure destruction, and the parent will wait the whole time. Taking some code from davidrw and some from my own node,

use Set::Light; my $pid = fork; die "Can't fork: $!" if ! defined $pid; if($pid){ # parent my $start_time = time; wait; printf "Child exited after %d seconds\n", time - $start_time; } else { # child my $start_time = time; my $set = Set::Light->new(); for( my $i = 0; $i < 10_000_000; $i++ ) { $set->insert( $i ); } printf "Child done after %d seconds\n", time - $start_time; exit; } __END__ Child done after 36 seconds Child exited after 163 seconds

The solution to this is not to let the child exit normally (i.e., kill it). In the above code, if I change "exit" to "kill 9 => $$", the OS does the memory reclamation, and the output looks like this:

Child done after 32 seconds Child exited after 32 seconds

In reply to Re^4: why won't the hash go away? by kyle
in thread why won't the hash go away? by WoodyWeaver

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.