Swapping is the very act of writing to disk after the physical memory limit has been reached, is it not? When choosing what chunks of memory to swap out, the operating system will usually pick those that have not been in recent use. Unless you can write a significantly smarter algorithm, I'd expect the performance to be worse if you try to swap manually.

Only if you can make better guesses on what chunks of data you won't be needing any time soon will you be able to outperform the memory manager. But then, if you knew you wouldn't be needing parts of the data in memory, you probably wouldn't have bothered placing it there to begin with, right?

If the data set was 10 times larger, maybe I'd spend some time trying to come up with a completely different approach. Today, for a 17 GB data structure I'd seriously consider just buying more RAM so I could get back to work.

The sad truth is, one day wasted on writing, testing and debugging clever code costs far more than a 16 GB stick these days.

-- FloydATC

Time flies when you don't know what you're doing


In reply to Re: write hash to disk after memory limit by FloydATC
in thread write hash to disk after memory limit by hailholyghost

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.