Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^4: No garbage collection for my-variables

by betterworld (Curate)
on Sep 15, 2008 at 23:01 UTC ( #711568=note: print w/replies, xml ) Need Help??


in reply to Re^3: No garbage collection for my-variables
in thread No garbage collection for my-variables

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.

  • Comment on Re^4: No garbage collection for my-variables

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://711568]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2020-12-04 05:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How often do you use taint mode?





    Results (58 votes). Check out past polls.

    Notices?