Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Re: Out Of Memory error at 950MB with 14GB free RAM

by didier (Vicar)
on Feb 10, 2004 at 13:27 UTC ( #327905=note: print w/ replies, xml ) Need Help??


in reply to Re: Out Of Memory error at 950MB with 14GB free RAM
in thread Out Of Memory error at 950MB with 14GB free RAM

My God!
Please, Abigail, could you explain why this expression is a problem?

$a [[1]] = 1;
take close to 50 MB on my system.
Many thanks.


Comment on Re: Re: Out Of Memory error at 950MB with 14GB free RAM
Download Code
Re: Out Of Memory error at 950MB with 14GB free RAM
by Abigail-II (Bishop) on Feb 10, 2004 at 13:53 UTC
    [1] is a reference. A reference in a numeric context gives you a memory address. Memory addresses are usually big. Storing an element out of range in an array will make Perl grow the array so it fits - creating undefined values to fill up the array. Storing an element using a big index will make Perl create a huge array, with all the elements taking two handfuls of bytes.

    I'd say you're lucky it takes only 50Mb on your system. It dies on one system I tried it on, and it used 420 Mb on another.

    Abigail

Re: (3) Out Of Memory error at 950MB with 14GB free RAM
by ambrus (Abbot) on Feb 10, 2004 at 14:01 UTC

    Try perl -wle 'print 0+[1]'; it will print a very big number, as it converts the pointer to an anonymous list ([1]) to an integer. Thus, $a[[1]]=1 creates a very large array, as it has to set the (0+[1])-th element of @a to 1.

    Update: Abigail-II was somewhat faster to submit an answer, and his is actually cleaner than mine.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (12)
As of 2014-07-25 17:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (174 votes), past polls