Comparing speed of DNS clients
Find a file
2024-12-21 22:56:25 +04:00
.build.sh style: move common optimization options to var 2024-12-21 22:32:03 +04:00
.gitignore feat: add 3 more dns clients 2024-12-21 22:36:02 +04:00
build_dig.sh fix: adjust agressive optimization options 2024-12-21 21:29:59 +04:00
build_dog.sh feat: add 3 more dns clients 2024-12-21 22:36:02 +04:00
build_doggo.sh feat: add 3 more dns clients 2024-12-21 22:36:02 +04:00
build_drill.sh fix: adjust agressive optimization options 2024-12-21 21:29:59 +04:00
build_hr.sh refactor: move cargo build options to .build.sh 2024-12-21 21:58:03 +04:00
build_kdig.sh feat: add knot-kdig 2024-12-21 21:35:03 +04:00
build_q.sh feat: add 3 more dns clients 2024-12-21 22:36:02 +04:00
LICENSE initial commit 2024-12-20 10:15:17 +04:00
main.sh feat: add 3 more dns clients 2024-12-21 22:36:02 +04:00
README.md docs: update readme with new results and add versions 2024-12-21 22:56:25 +04:00
results.txt upload new results 2024-12-21 22:39:06 +04:00
unbound.conf i so fucking hate benchmarking 2024-12-21 12:51:32 +04:00

Comparing speed of bind-dig (C), knot-kdig (C), ldns-drill (C), hickory-resolve (Rust), dog (Rust), doggo (Go) and q (Go) DNS clients. Server is Unbound.

Versions

  • libc musl 1.1.24
  • gcc 13.2.0
  • rustc 1.83.0 (90b35a623 2024-11-26)
  • go version go1.23.3 linux/amd64
  • unbound 1.22.0
  • dig 9.21.4-dev (commit 8d9bc93e)
  • kdig, Knot DNS 3.5.dev0+1734704580.413600e (commit 413600ea)
  • drill version 1.8.4 (ldns version 1.8.4)
  • hickory 0.25.0-alpha.4 (commit 119800d0)
  • dog v0.2.0-pre (commit 721440b1)
  • doggo (commit 16ba284a)
  • q (commit 1cb2639c)

Summary

dog/target/release/dog -n 127.0.0.1:2253 -t TXT txt.domain.tld ran

  • 4.63 ± 0.27 times faster than doggo/doggo -n 127.0.0.1:2253 --short -t TXT txt.domain.tld
  • 4.70 ± 0.24 times faster than q/q -s 127.0.0.1:2253 -r -t TXT txt.domain.tld
  • 5.23 ± 0.45 times faster than hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t TXT txt.domain.tld
  • 6.78 ± 0.31 times faster than /usr/sbin/drill -p 2253 -Q TXT txt.domain.tld @127.0.0.1
  • 9.85 ± 0.45 times faster than knot-dns/src/kdig -p 2253 +short TXT txt.domain.tld @127.0.0.1
  • 28.39 ± 8.20 times faster than bind9/bin/dig/dig -p 2253 +short TXT txt.domain.tld @127.0.0.1

Previous results

hickory-dns/target/release/resolve -n 127.0.0.1:2253 -t A domain.tld ran

  • 1.97 ± 0.28 times faster than /usr/sbin/drill -p 2253 -Q A domain.tld @127.0.0.1
  • 5.63 ± 1.16 times faster than bind9/bin/dig/dig -p 2253 +short A domain.tld @127.0.0.1

Notes

Custom build of drill gives 2x slower speed, so that one in results.txt is from Void packages.