in reply to Re: out of memory problem after undef
in thread out of memory problem after undef

Hi,

Thanks for the reply.

Regarding allocation of memory for the AoH, I currently don't see a way of making that more efficient, because in context of the script where this is used, this structure is built up over time.

Also, this seems like a fundamental problem with using such structures in Perl on Win32. By the way, I am using ActiveState ActivePerl distribution, if this makes a difference.

Based on what you said, because I have this huge AoH, memory is fragmented in small chunks and it can't be easily reused for a large array. Do you, or anyone else, know if there is a way to force Perl to defragment its memory pool to enable reallocation of the freed memory?

I tried to preallocate the array, but there is not enough system memory, so Perl runs out of memory.

Thanks,


Tim
  • Comment on Re^2: out of memory problem after undef

Replies are listed 'Best First'.
Re^3: out of memory problem after undef
by Anonymous Monk on Aug 07, 2012 at 06:36 UTC
    Hey All, I too ran into more or less the same issue as did Tim, so does anybody have an answer for suggesting perl to defragment its memory pool ? Its really bad and frustrating coz despite having a memory of 2GB eaten up by Perl it is not able to meet the need of storing 200MB of data. Big Monks - Please help me out....
      Perl it is not able to meet the need of storing 200MB of data.

      Here is a 200MB file:

      C:\>dir acktrace 14/06/2012 18:51 206,937,739 acktrace

      And here is a perl script loading 10 copies of that file into less than 2GB of memory; then discarding it and recovering all the memory:

      c:>perl -E"undef($/); $f[0]=<>; $f[$_]=$f[$_-1] for 1..9; say`tasklist +`; undef @f; say`tasklist`;" acktrace | find "perl" perl.exe 7996 Console 1 1,927 +,000 K perl.exe 7996 Console 1 4 +,796 K

      Don't blame Perl, or ActiveState or Windows because you don't know how to use them effectively.

      If you want actual help; post the actual code.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

      The start of some sanity?