in reply to Re^9: Howto Avoid Memory Problem in List::MoreUtils
in thread Howto Avoid Memory Problem in List::MoreUtils
how have you created the scalars inside @numbers?
I am creating the array with rand, so they should already be IVs:
#! perl -slw use strict; use sort '_quicksort'; sub mem { my( $usage ) = `tasklist /NH /FI \"pid eq $$\" ` =~ m[ (\S+) \s+ +K \s* $ ]x; return $usage; } $| = 1; my @a; $#a = 20e6; $a[ $_ ] = int rand 32767 for 0 .. 20e6; printf "Mem after building array: %s kb\n", mem; @a = sort{ $a <=> $b } @a; printf "Mem after sorting array: %s kb\n", mem;
Also, in not too old versions of perl, there was a bug that caused numbers to be converted to strings inside sort even when numeric comparison was used.
That was it. I'm still using 5.8.6 as my general install. Running the above script under 5.8.8 fixes that problem. Many thanks for your patience.
|
|---|