http://www.perlmonks.org?node_id=1001118


in reply to Optimizing I/O intensive subroutine

What happens if you return an array reference instead of an array at the end of this function? (Depending on how large $limit is, you might cause Perl to copy a lot of data.)

What happens if, instead of reading the whole file into an array and then sorting it, you keep track of the largest n lines you've seen and read the file line by line?


Improve your skills with Modern Perl: the free book.

Replies are listed 'Best First'.
Re^2: Optimizing I/O intensive subroutine
by Anonymous Monk on Oct 26, 2012 at 16:30 UTC

    The latter suggestion is more promising.

    Looking at the timings, the bulk of the time is in the split (20.4 s) and the push @lines (16.2s)

      Ah, I didn't see there was a second image. Good catch.