This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

2009/12/30 Zhao, Dong:
> 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!

I 'll investigate. Best is always to pre-allocate huge memory to help
those malloc calls.

We are using the standard perl malloc -Dusemymalloc=y (hints/
Maybe the other platforms are using their system malloc.

You can override that with -Dusemymalloc=n

../perl-5.10.1/Configure -de -Dlibperl=cygperl5_10_sysmalloc.dll
-Dmksymlinks -Dusethreads -Dmad=y -Dusemymalloc=n
Reini Urban 

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]