Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

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.

Comment on Re: mem usage
Select or Download Code
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 chanting in the Monastery: (3)
As of 2015-11-30 05:04 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (758 votes), past polls