If you put your data items in to a normal array, and form the linked list by prefixing the index of the next item to the front (or stick it on the end), then your worst case of 2e6 x 40b and 120e3 x 338, only requires 1/4GB.
Hide the mechanics behind a suitable OO interface and you can hand out instance handles that are just blessed integers.
#! perl -slw use strict; our $BIG ||= 60e3; our $LIL ||= 1e6; my( @biguns, @liluns ); push @biguns, pack 'NA338', scalar @biguns, 'X' x 338 for 1 .. $BIG; push @liluns, pack 'NA40', scalar @liluns, 'Y' x 40 for 1 .. $LIL; system qq[tasklist /fi "pid eq $$"]; <STDIN>; __END__ C:\test>618996 -BIG=60e3 -LIL=1e6 Image Name PID Session Name Session# Mem Usag +e ========================= ====== ================ ======== =========== += perl.exe 2340 0 123,984 +K C:\test>618996 -BIG=120e3 -LIL=2e6 Image Name PID Session Name Session# Mem Usag +e ========================= ====== ================ ======== =========== += perl.exe 2656 0 246,096 +K
In reply to Re: perl memory use question
by BrowserUk
in thread perl memory use question
by exodist
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |