Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: Clearing an Array of Array's from memory

by Elian (Parson)
on Aug 29, 2003 at 17:17 UTC ( [id://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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://287763]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-06-21 12:18 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.