Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

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 all is quiet...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2018-01-23 16:14 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (248 votes). Check out past polls.