Thread Speicherverbrauch Array-Cache vs Hash-Cache
(8 answers)
Opened by Kuerbis at 2022-07-07 09:06
Hallo,
print_columns in ![]() Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 my $cache = []; sub print_columns { my $str = $_[0]; my $width = 0; for my $i ( 0 .. ( length( $str ) - 1 ) ) { my $c = ord substr $str, $i, 1; if ( ! defined $cache->[$c] ) { $cache->[$c] = char_width( $c ); } $width = $width + $cache->[$c]; } return $width; } Der Array-Cache kann im ungünstigsten Fall 9 MB mehr Speicher verbrauchen als ein Hash-Cache. Sind es diese 9 MB wert zu überlegen, den Array-Cache durch einen Hash-Cache zu ersetzten? Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 use Devel::Size qw( size total_size ); my $cache_array = []; $cache_array->[0x10fffd] = 2; say size( $cache_array ); # 8_912_944 say total_size( $cache_array ); # 8_912_968 my $cache_hash = {}; $cache_hash->{0x10fffd} = 2; say size( $cache_hash ); # 185 say total_size( $cache_hash ); # 209 |