From 727bd0d4e906e02df626fdd1a7dbb02c28c0cbc0 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 9 Sep 2026 11:22:51 +0200 Subject: [PATCH] scan: introduce group pages For different views/collection of data points next to each other --- scan.pl | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/scan.pl b/scan.pl index 6214efe..1005756 100755 --- a/scan.pl +++ b/scan.pl @@ -21,6 +21,44 @@ # number of entries to store in the "full range" LTTB CSV file my $numlttb = 100; +# generate grouped pages with a set of graphs +my %groups = ( + 'h1parallel-speed' => 'http1,speed', + 'h1parallel-mem' => 'http1,mem', + 'h1parallel-cpu' => 'http1,cpu', + 'h1parallel-upload-speed' => 'http1,speed', + 'h1parallel-upload-mem' => 'http1,mem', + 'h1parallel-upload-cpu' => 'http1,cpu', + 'h1-requests' => 'http1,parallel', + 'h1-req-mem' => 'http1,mem', + 'h1-req-cpu"' => 'http1,cpu', + + 'h2parallel-speed' => 'http2,speed', + 'h2parallel-mem' => 'http2,mem', + 'h2parallel-cpu' => 'http2,cpu', + 'h2parallel-upload-speed' => 'http2,speed', + 'h2parallel-upload-mem' => 'http2,mem', + 'h2parallel-upload-cpu' => 'http2,cpu', + 'h2-requests' => 'http2,parallel', + 'h2-req-mem' => 'http2,mem', + 'h2-req-cpu"' => 'http2,cpu', + + 'h3parallel-speed' => 'http3,speed', + 'h3parallel-mem' => 'http3,mem', + 'h3parallel-cpu' => 'http3,cpu', + 'h3parallel-upload-speed' => 'http3,speed', + 'h3parallel-upload-mem' => 'http3,mem', + 'h3parallel-upload-cpu' => 'http3,cpu', + 'h3-requests' => 'http3,parallel', + 'h3-req-mem' => 'http3,mem', + 'h3-req-cpu"' => 'http3,cpu', + + 'snprintf' => 'printf', + 'maprintf' => 'printf', + 'simplef' => 'printf', + ); + + opendir(my $dh, $logdir) || die "Can't open dir: $!"; my @logs = grep { /^perf.*\.log/ && -f "$logdir/$_" } readdir($dh); closedir $dh; @@ -634,6 +672,18 @@ sub show { $f, scalar(@o) - 1; push @out, "\n"; + my $gname = $groups{$filename}; + if($gname) { + # add this to the group displays + my @a = split(/,/, $gname); + for my $g (@a) { + open(F, ">>$outdir/$g.html"); + print F "

$name

\n"; + print F "\n"; + close(F); + } + } + if(scalar(@o) > $roundspergraph) { my $n = scalar(@o); my $img = 1; @@ -1094,6 +1144,20 @@ sub single { builddetails($numrounds); +my %groupnames; +for my $g (values %groups) { + my @a = split(/,/, $g); + for my $e (@a) { + $groupnames{$e}++; + } +} + +for my $g (keys %groupnames) { + open(G, ">$outdir/$g.html"); + print G "Back to perf index\n"; + close(G); +} + my @output; my @deltas; @@ -1287,6 +1351,14 @@ sub single { } print "\n"; +printf "
test groups\n"; + +for my $g (sort keys %groupnames) { + print "$g, "; +} + +print "
\n"; + # show deltas moving average vs std dev my @d;