Thread grosse hashes optimieren: 800-900 keys
(19 answers)
Opened by lichtkind at 2006-06-21 22:38
Es bringt einen Geschwindigkeitsgewinn, wenn du die Hashes aufteilst nach (vielen) selten und (wenig) häufig verwendeten Schlüsseln. Ansonsten ist das intern schon ziemlich optimal aufgebaut. Und da der so Vorteil so minimal ist, würde ich aber erst bei 100 000 Schlüsseln anfangen mir darüber Gedanken zu machen.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t] "if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep !$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1} |