Worthy Monks,

I have a few perl scripts that manipulate some text in large text files (~20,000,000 lines), using while (<FH>) loops to run through the file. Apart from a few small arrays and hashes, I use very little memory.

The programs work just as expected both on Ubuntu 12.04 (Perl 5.14.2), and OSX mountain lion (Perl 5.12.4).

However, in OSX, the available 'free' memory is quickly converted to 'inactive' memory. The system monitor on Ubuntu shows pretty much flat memory usage.

The only downside of this, as far as I can see, is that in OSX, other programs running simultaneously are slower to respond. My script seems to be unaffected.

I was wondering if anybody else has noticed this, and is there an obvious general explanation that I'm missing?

Thank you for any opinions you might have.

PS As an example, used on a text file with 20,000,000 lines:

#!/usr/bin/perl use strict; my $fileForLineCount = $ARGV[0]; my $lineCount = 0; my $buffer = 0; open (my $targetHandle, "<", $fileForLineCount); while(sysread $targetHandle, $buffer, 4096) { $lineCount += ($buffer =~ tr/\n//); } close $targetHandle; print STDERR "$lineCount\n\n";
on Ubuntu, it flies through, and on OSX, the memory thing happens.

Thanks for your help!


In reply to Inactive memory and OSX by mtmcc

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.