Skip to content

optimized EDNS0_SUBNET pack, reducing make() calls#1692

Merged
miekg merged 1 commit intomiekg:masterfrom
zjj:master
Dec 11, 2025
Merged

optimized EDNS0_SUBNET pack, reducing make() calls#1692
miekg merged 1 commit intomiekg:masterfrom
zjj:master

Conversation

@zjj
Copy link
Copy Markdown
Contributor

@zjj zjj commented Dec 11, 2025

better memory efficiency and performance

go test -bench BenchmarkEDNS0_SUBNETPack -benchmem
goos: linux
goarch: amd64
pkg: github.com/miekg/dns
cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics
BenchmarkEDNS0_SUBNETPack/IPv4-32-16 15302484 74.44 ns/op 24 B/op 4 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv4-24-16 15355341 75.70 ns/op 24 B/op 4 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv4-0-16 22785794 49.97 ns/op 12 B/op 3 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv6-128-16 10467068 113.5 ns/op 60 B/op 4 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv6-64-16 9983762 119.0 ns/op 52 B/op 4 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv6-0-16 13451102 87.89 ns/op 36 B/op 3 allocs/op
PASS
ok github.com/miekg/dns 8.437s

go test -bench BenchmarkEDNS0_SUBNETPack -benchmem
goos: linux
goarch: amd64
pkg: github.com/miekg/dns
cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics
BenchmarkEDNS0_SUBNETPack/IPv4-32-16 22200404 53.24 ns/op 16 B/op 3 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv4-24-16 20987185 56.14 ns/op 16 B/op 3 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv4-0-16 72761500 15.25 ns/op 4 B/op 1 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv6-128-16 12679305 94.54 ns/op 56 B/op 3 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv6-64-16 12009836 98.91 ns/op 48 B/op 3 allocs/op
BenchmarkEDNS0_SUBNETPack/IPv6-0-16 82040701 13.24 ns/op 4 B/op 1 allocs/op
PASS
ok github.com/miekg/dns 8.214s

@miekg
Copy link
Copy Markdown
Owner

miekg commented Dec 11, 2025

thanks, also for the benchmark, but I don't think we need carry this specific benchmark with the code going forward, so just remove it.

@miekg miekg merged commit acb3aba into miekg:master Dec 11, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants