Well, I'll be....
Any idea of where all that extra memory usage is coming from (beyond the 78M for Data::Dumper)? That's a lot of extra space for 13M of actual data. Based on a conversation in the CB, hash buckets only account for about half a meg extra, not 60M (or 20M as per another tester in a reply further up)
Update:A quick check on my machine comes up with 26M for storing key value pairs in an array, and 34M for storing them in a hash:
key-value pair: 112 bytes total data for 125,000 key-value pairs: 13.25M virtual memory usage for array built via push @aData, $k, $v: 26M virtual memory usage for hash built via $hData{$k} = $v: 34M
The test script is below
use strict; use warnings; my $k="//programfiles/documents/data/lookup/script_auth_pap.h"; my $v="\\root\\edit\\perl\\scripts\\scripths\\sec\\inc\\script_auth_pa +p.h"; # ----------------------------------- # pick one or the other array or hash # ----------------------------------- #my @aData; #for (1..125000) { # push @aData, $k, $v; #} my %hData; for (1..125000) { $hData{$k}=$v; } # ----------------------------------- # memory consumption output # ----------------------------------- my $iPair = length($k) + length($v); printf STDERR "Length of key-value pair: %d bytes; total data=%.2f M\n +" , $iPair, (125001*$iPair)/(1028*1028); warn `ps -o vsz -p $$ 2>NUL`, ' ';
In reply to Re^5: Constructing a hash - why isn't my regex matching anything
by ELISHEVA
in thread Constructing a hash - why isn't my regex matching anything
by perl_mystery
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |