in reply to perl memory use question
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
|
|---|