Skip to content

Commit 27728cd

Browse files
committed
benchmarks: add table generator
1 parent 44362f5 commit 27728cd

2 files changed

Lines changed: 67 additions & 0 deletions

File tree

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,6 @@ name = "dirent_bench"
5858
harness = false
5959

6060

61+
62+
[package.metadata.cargo-allocation]
63+
exclusive = true

make_results_table.sh

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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

Comments
 (0)