Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: Clearing an Array of Array's from memory

by Elian (Parson)
on Aug 29, 2003 at 17:17 UTC ( #287763=note: print w/replies, xml ) Need Help??

in reply to Clearing an Array of Array's from memory

undef'ing the array will throw it up and delete any otherwise unreferenced things in the array, or the arrays in the array. This won't take a noticeable amount of time except in the most extraordinary of circumstances. (Like everything in the array of arrays has been swapped out to disk and needs to be paged back in to alter reference counts)

The memory may or may not be released back to the system--that depends mainly on the size of any one array, but generally not. On many systems you need to get into the megabyte allocation range (which means one element that's multi-megabytes in size, or an array of millions of elements) for this to happen, but some operating systems and C memory allocation libraries are more aggressive than others in returning memory to the system.

Making this a my variable and letting it fall out of scope will release all the memory except for the memory taken by the structure (but not the contents) of the my'd variable. So a multi-million element array falling out of scope will release its contents, but the structure of the array itself will remain. (This is one of the space/speed tradeoffs that perl makes)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://287763]
[Eily]: LanX how does the first link work, should I send a message to rat? :D
[LanX]: yes, or click the second link
[LanX]: hmm there is an xml ticker for threads

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (8)
As of 2018-03-19 09:58 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (238 votes). Check out past polls.