1+ #! /usr/bin/env bash
2+
3+
4+ echo -e " Benchmark results for $( uname -a ) \n\n"
5+ printf " | %-50s | %-15s | %-15s | %-8s | %-16s |\n" " Test Case" " fdf Mean" " fd Mean" " Speedup" " Relative"
6+ printf " | %-50s | %-15s | %-15s | %-8s | %-15s |\n" " :----------" " :--------:" " :-------:" " :-------:" " :--------:"
7+
8+ cat bench_results/* .md | grep -Ei ' ^\|' | grep -Ei -v ' \|:' | grep -v ' Command.*Mean.*Min.*Max.*Relative' | \
9+ awk -F' |' '
10+ function trim(s) {
11+ gsub(/^[ \t]+|[ \t]+$/, "", s)
12+ return s
13+ }
14+ function format_cmd(cmd) {
15+
16+ gsub(/^' " '" ' |' " '" ' $/, "", cmd)
17+ gsub(/^"|"$/, "", cmd)
18+ return cmd
19+ }
20+ {
21+ line = $0
22+ gsub(/^\| /, "", line) # Remove leading "| "
23+ gsub(/ \|$/, "", line) # Remove trailing " |"
24+
25+ # Split into fields
26+ n = split(line, fields, " \\| ")
27+
28+ if (n >= 5) {
29+ command = trim(fields[1])
30+ mean = trim(fields[2])
31+ relative = trim(fields[5])
32+
33+ if (command ~ /^`fdf/) {
34+ # Extract command without program name
35+ cmd = command
36+ gsub(/^`fdf /, "", cmd)
37+ gsub(/`$/, "", cmd)
38+ cmd = format_cmd(cmd)
39+ fdf_mean = mean
40+ fdf_relative = relative
41+ }
42+ else if (command ~ /^`fd /) {
43+ fd_mean = mean
44+ fd_relative = relative
45+
46+ if (fdf_mean != "") {
47+ # Extract numeric part before " ± "
48+ split(fdf_mean, fdf_parts, " ± ")
49+ split(fd_mean, fd_parts, " ± ")
50+
51+ if (fdf_parts[1] + 0 > 0) {
52+ speedup = sprintf("%.2fx", fd_parts[1] / fdf_parts[1])
53+ printf "| %-50s | %-15s | %-15s | %-8s | %-15s |\n", "`" cmd "`", fdf_mean, fd_mean, "**" speedup "**", fd_relative
54+ } else {
55+ printf "| %-50s | %-15s | %-15s | %-8s | %-15s |\n", "`" cmd "`", fdf_mean, fd_mean, "N/A", fd_relative
56+ }
57+ fdf_mean = ""
58+ }
59+ }
60+ }
61+ }
62+ ' >> results_table.md
63+
64+ cat results_table.md
0 commit comments