i so fucking hate benchmarking

This commit is contained in:
DarkCat09 2024-12-21 12:51:32 +04:00
parent 3a54f096e4
commit 6a2dc3eb8c
Signed by: DarkCat09
GPG key ID: BD3CE9B65916CD82
3 changed files with 7 additions and 136 deletions

View file

@ -63,8 +63,8 @@ sleep 2
run_bench () {
hyperfine -N -w 30 \
"$exe_dig -p 2253 $1 $2 @127.0.0.1" \
"$exe_drill -p 2253 $1 $2 @127.0.0.1" \
"$exe_dig -p 2253 +short $1 $2 @127.0.0.1" \
"$exe_drill -p 2253 -Q $1 $2 @127.0.0.1" \
"$exe_hr -n 127.0.0.1:2253 -t $1 $2"
}

View file

@ -1,129 +0,0 @@
==> Checking deps
/usr/sbin/unbound
/usr/sbin/hyperfine
dig: using custom build at bind9/bin/dig/dig
resolve: using custom build at hickory-dns/target/release/resolve
==> Starting Unbound
==> Benchmarks for A domain.tld.
Benchmark 1: bind9/bin/dig/dig -p 2253 A domain.tld @127.0.0.1
Time (mean ± σ): 9.6 ms ± 1.3 ms [User: 7.2 ms, System: 2.9 ms]
Range (min … max): 8.7 ms … 16.7 ms 305 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 2: /usr/sbin/drill -p 2253 A domain.tld @127.0.0.1
Time (mean ± σ): 2.3 ms ± 0.1 ms [User: 1.6 ms, System: 0.6 ms]
Range (min … max): 2.2 ms … 3.9 ms 1273 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 3: hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t A domain.tld
Time (mean ± σ): 1.9 ms ± 0.3 ms [User: 1.2 ms, System: 1.3 ms]
Range (min … max): 1.8 ms … 15.3 ms 1613 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Summary
hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t A domain.tld ran
1.20 ± 0.22 times faster than /usr/sbin/drill -p 2253 A domain.tld @127.0.0.1
5.00 ± 1.13 times faster than bind9/bin/dig/dig -p 2253 A domain.tld @127.0.0.1
==> Benchmarks for AAAA domain.tld.
Benchmark 1: bind9/bin/dig/dig -p 2253 AAAA domain.tld @127.0.0.1
Time (mean ± σ): 10.9 ms ± 3.2 ms [User: 7.9 ms, System: 3.4 ms]
Range (min … max): 8.8 ms … 19.8 ms 317 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 2: /usr/sbin/drill -p 2253 AAAA domain.tld @127.0.0.1
Time (mean ± σ): 2.4 ms ± 0.2 ms [User: 1.7 ms, System: 0.6 ms]
Range (min … max): 2.2 ms … 3.4 ms 1030 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 3: hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t AAAA domain.tld
Time (mean ± σ): 1.9 ms ± 0.3 ms [User: 1.3 ms, System: 1.3 ms]
Range (min … max): 1.8 ms … 15.5 ms 1604 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Summary
hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t AAAA domain.tld ran
1.23 ± 0.24 times faster than /usr/sbin/drill -p 2253 AAAA domain.tld @127.0.0.1
5.65 ± 1.93 times faster than bind9/bin/dig/dig -p 2253 AAAA domain.tld @127.0.0.1
==> Benchmarks for MX domain.tld.
Benchmark 1: bind9/bin/dig/dig -p 2253 MX domain.tld @127.0.0.1
Time (mean ± σ): 10.6 ms ± 2.1 ms [User: 7.8 ms, System: 3.3 ms]
Range (min … max): 8.7 ms … 18.1 ms 315 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 2: /usr/sbin/drill -p 2253 MX domain.tld @127.0.0.1
Time (mean ± σ): 2.7 ms ± 0.8 ms [User: 1.9 ms, System: 0.7 ms]
Range (min … max): 2.2 ms … 4.8 ms 716 runs
Warning: The first benchmarking run for this command was significantly slower than the rest (4.2 ms). This could be caused by (filesystem) caches that were not filled until after the first run. You are already using the '--warmup' option which helps to fill these caches before the actual benchmark. You can either try to increase the warmup count further or re-run this benchmark on a quiet system in case it was a random outlier. Alternatively, consider using the '--prepare' option to clear the caches before each timing run.
Benchmark 3: hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t MX domain.tld
Time (mean ± σ): 1.9 ms ± 0.1 ms [User: 1.2 ms, System: 1.3 ms]
Range (min … max): 1.8 ms … 2.4 ms 1581 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Summary
hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t MX domain.tld ran
1.43 ± 0.41 times faster than /usr/sbin/drill -p 2253 MX domain.tld @127.0.0.1
5.51 ± 1.10 times faster than bind9/bin/dig/dig -p 2253 MX domain.tld @127.0.0.1
==> Benchmarks for CNAME mail.domain.tld.
Benchmark 1: bind9/bin/dig/dig -p 2253 A mail.domain.tld @127.0.0.1
Time (mean ± σ): 10.3 ms ± 1.8 ms [User: 7.6 ms, System: 3.1 ms]
Range (min … max): 8.7 ms … 14.8 ms 228 runs
Benchmark 2: /usr/sbin/drill -p 2253 A mail.domain.tld @127.0.0.1
Time (mean ± σ): 2.5 ms ± 0.5 ms [User: 1.7 ms, System: 0.6 ms]
Range (min … max): 2.2 ms … 4.7 ms 1321 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 3: hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t A mail.domain.tld
Time (mean ± σ): 2.0 ms ± 0.5 ms [User: 1.2 ms, System: 1.4 ms]
Range (min … max): 1.9 ms … 21.8 ms 1532 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Summary
hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t A mail.domain.tld ran
1.24 ± 0.42 times faster than /usr/sbin/drill -p 2253 A mail.domain.tld @127.0.0.1
5.16 ± 1.62 times faster than bind9/bin/dig/dig -p 2253 A mail.domain.tld @127.0.0.1
==> Benchmarks for TXT txt.domain.tld.
Benchmark 1: bind9/bin/dig/dig -p 2253 TXT txt.domain.tld @127.0.0.1
Time (mean ± σ): 9.9 ms ± 0.8 ms [User: 7.3 ms, System: 3.1 ms]
Range (min … max): 9.2 ms … 14.2 ms 312 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 2: /usr/sbin/drill -p 2253 TXT txt.domain.tld @127.0.0.1
Time (mean ± σ): 2.5 ms ± 0.5 ms [User: 1.8 ms, System: 0.6 ms]
Range (min … max): 2.2 ms … 4.1 ms 1286 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 3: hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t TXT txt.domain.tld
Time (mean ± σ): 2.1 ms ± 0.7 ms [User: 1.3 ms, System: 1.4 ms]
Range (min … max): 1.9 ms … 22.0 ms 1515 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Summary
hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t TXT txt.domain.tld ran
1.21 ± 0.49 times faster than /usr/sbin/drill -p 2253 TXT txt.domain.tld @127.0.0.1
4.79 ± 1.74 times faster than bind9/bin/dig/dig -p 2253 TXT txt.domain.tld @127.0.0.1
==> All done
==> Stopping Unbound

View file

@ -8,14 +8,14 @@ server:
interface: 127.0.0.1
port: 2253
num-threads: 2
msg-cache-slabs: 2
infra-cache-slabs: 2
num-threads: 8
msg-cache-slabs: 8
infra-cache-slabs: 8
msg-cache-size: 32m
neg-cache-size: 32m
outgoing-range: 256
num-queries-per-thread: 128
outgoing-range: 8192
num-queries-per-thread: 1024
so-reuseport: yes
local-zone: "domain.tld." static