From: Mischa POSLAWSKY Date: Thu, 27 Apr 2017 13:51:38 +0000 (+0200) Subject: browser: precalculate row usage values X-Git-Tag: v1.10~50 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/f73ec42018bd7c627db8742c92636074033f19e4 browser: precalculate row usage values Trade memory for speed. --- diff --git a/browser.plp b/browser.plp index 202f252..a101d74 100644 --- a/browser.plp +++ b/browser.plp @@ -202,6 +202,8 @@ my $usagepct = 1; # score multiplier for 0..100 result $usagepct = 100.01 / featurescore({ # yes for every possible version map { $_ => { map {$_ => 'y'} map { @{$_} } @{$versions{$_}} } } keys %versions }); +$_->{usage} = featurescore($_->{stats}) * $usagepct + for values %{ $caniuse->{data} }; print ''; print ''; # should match first thead row @@ -429,13 +431,12 @@ sub saybrowsercols { sub sayusagecol { my ($id) = @_; - print ''; for my $id (sort { - featurescore($caniuse->{data}->{$b}->{stats}) - <=> featurescore($caniuse->{data}->{$a}->{stats}) + $caniuse->{data}->{$b}->{usage} <=> $caniuse->{data}->{$a}->{usage} } keys %{ $caniuse->{data} }) { $caniuse->{data}->{$id}->{stats} or next; # skip metadata [summary] printf '', $id;
', int featurescore($caniuse->{data}->{$id}->{stats}) * $usagepct; + print '', int $caniuse->{data}->{$id}->{usage}; } say '