Slide 29
Slide 29 text
メモリーアロケーションを減らす
import "github.com/miekg/dns"
ctx, cancel := context.WithTimeout(
context.Background(),
timeLimit,
)
defer cancel()
for w := 0; w < maxWorkers; w++ {
go func() {
c := &dns.Client{Net: protocol,
Timeout: timeout}
m := new(dns.Msg)
address := net.JoinHostPort(host, port)
for {
do(c, m, address)
}
}()
}
<- ctx.Done()
var atype = dns.StringToType[“A"]
func do(c *dns.Client,
m *dns.Msg,
address string
) {
sub := randString(10)
m.SetQuestion(sub+”.”+zone+”.", atype)
r, _, err := c.Exchange(m, address)
if err != nil {
}
if r.Rcode == dns.RcodeRefused {
}
}
ループごとに初期化する
必要ない。ループの外へ移動する