Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re: mem usage

by ikegami (Pope)
on May 26, 2010 at 17:34 UTC ( #841761=note: print w/replies, xml ) Need Help??

in reply to mem usage

Maybe fragmentation from extending the stack is using up a lot of memory. Try to avoid putting the entire file on the stack, and pre-extending its destination:

my @lines; $#lines = 12_000_000; @lines = (); push @lines, $_ while <IN>;

Note that shuffle already exists in List::Util.

Update: Fixed bug.

Replies are listed 'Best First'.
Re^2: mem usage
by halfcountplus (Hermit) on May 26, 2010 at 18:02 UTC
    Thanks. It just barely squeezed thru -- interestingly the kernel killed firefox during the run.
      Woops, what I posted is very buggy. Should be
      my @lines; $#lines = 12_000_000; @lines = (); <------ was missing push @lines, $_ while <IN>;
      $ perl -e'print "abcdef\n" for 1..11_000_000' | perl -E' $#a=11_000_000; @a=(); push @a, $_ while <>; say int(`ps --no-heading -o vsz $$`/1000) ' 480

      480MB for 77MB file with 11 million lines.

        Hmmm, yeah that's much better. What's the significance of this:
        After presizing -- I would have thought that would just clear the array?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://841761]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (7)
As of 2016-10-25 08:40 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (315 votes). Check out past polls.