Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
That means it either has to keep it there always, or free it always (or do some kind of heuristic, which should usually mean keep it, since allocating memory is expensive, and if you're using a large string now, chances are, you'll be using a large string again some time soon).

Especially for a large string I wonder in how far the gain of avoiding the deallocation is considerable with regard to filling the buffer with the string and working with it.

Of course you're right: I shouldn't copy 500MB strings around too much, however I chose such a drastic length to make the effect clear. Even if the strings were smaller, I'd say I could use 1MB of memory for better things than storing 32 long-forgotten scalars of 32kB each (or even smaller ones). I am not really good at making up realistic scenarios, but I'm interested to know: Would you have anticipated perl's behaviour if you had just seen my code samples above?

I'm glad that kyle seems to agree that it would be nice if perl dealt better with these unused scalars. Besides, it obviously doesn't reuse the buffer if a subroutine calls itself recursively... but I haven't tested the memory consumption for this case yet.

In reply to Re^4: No garbage collection for my-variables by betterworld
in thread No garbage collection for my-variables by betterworld

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?

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

    How do I use this? | Other CB clients
    Other Users?
    Others browsing the Monastery: (8)
    As of 2021-01-28 11:50 GMT
    Find Nodes?
      Voting Booth?