Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Two things might quickly increase memory usage:
  • Thread

    If your application is threaded, you would usually end up with using much more memory, as there are resources you would replicate for each thread. Especially for 5.8 thread, there are lots of memory leaks.

    To help measure threaded application, you may want download Benchmark::Thread::Size to help. This module is from CPAN. It reports memory usage for pieces of source code in a threaded application.
  • Circular ref and recursive call

    Recursive calls can increase memory usage very quickly.

    There is also something called circular ref, which causes memory leak in old versions of Perl. In old versions, circular ref can easily escape first phase of garbage collection. A sample would be:
    for (1..10000) { $var = \$var; }
    It seems that each instance of $var would be freed up at the end of each loop, but in old perl, that's not the case. All 10000 $var would exist up to the end of the execution.

In reply to Re: reducing memory usage by pg
in thread reducing memory usage by batkins

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, 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, 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.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others contemplating the Monastery: (5)
    As of 2019-10-19 13:00 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      Notices?