Do Compress only when need in request.Scrub (#1760)

* Remove Compress by default

Set Compress = true in Scrub only when the message doesn not fit the
advertized buffer. Doing compression is expensive, so try to avoid it.

Master vs this branch
pkg: github.com/coredns/coredns/plugin/cache
BenchmarkCacheResponse-2   	   50000	     24774 ns/op

pkg: github.com/coredns/coredns/plugin/cache
BenchmarkCacheResponse-2   	  100000	     21960 ns/op

* and make it compile
This commit is contained in:
Miek Gieben
2018-05-01 21:04:06 +01:00
committed by GitHub
parent c48531bb35
commit 5735292406
17 changed files with 27 additions and 23 deletions

View File

@@ -75,7 +75,7 @@ func (h Handler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
msg := new(dns.Msg)
msg.SetReply(r)
msg.Authoritative, msg.RecursionAvailable, msg.Compress = true, true, true
msg.Authoritative, msg.RecursionAvailable = true, true
msg.Rcode = template.rcode
for _, answer := range template.answer {
@@ -105,6 +105,7 @@ func (h Handler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
}
state.SizeAndDo(msg)
state.Scrub(msg)
w.WriteMsg(msg)
return template.rcode, nil
}