Is there anyway to reduce cygwin perl's String memory usage?

Zhao, Dong dzhao@sepaton.com
Wed Dec 30 08:13:00 GMT 2009


Dear All:
Recently our Perl project run into the "Out of memory" issue on Windows Cygwin, while it works well on Linux, after optimized the code ,it still didn't work on Windows Cygwin perl(Because we do a lot of analysis bases on string arrays and hashes) . We found the reason is Cygwin perl uses much more memory than Linux perl or Windows As perl.
We did a lot searches over the internet but didn't found a solution yet.
I did tune the  "heap_chunk_in_mb" flag to "2048"  in registry "Software/Cygnus Solutions/Cygwin/". But our Perl script still exhausted over 1GB memory and crashes on Cygwin perl.

Then I compared the memory usage difference between Cygwin perl, Windows AS perl, and Linux Perl use this simple script:

    my @array = ();
    my $str = "A" x 1024;  #A string with 1024 len
    for(my $i=0;$i<100*1024;$i++){
        push @array,$str;
    }
    <STDIN>; #No we can take a look at memory.

I expected it to use about 100M memory for all platforms. But Windows cygwin perl use about 200M, while AS perl and Linux perl only used 100M.
Our current cygwin perl version is v5.10.0. And cygwin version is 1.7.1.
I also tried the latest cygwin perl version : v5.10.1. But still the same result.

Can anyone explain to me?  It there a simple way to reduce the cygwin perl's memory usage(Set some flag?Or recomple cygwin perl code)
Thanks for any answer!

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list