feat: avoid decoding known answers if we have no answers to give by bdraco · Pull Request #1308 · python-zeroconf/python-zeroconf
Inspired by #1307
In most cases were won't be able to answer the questions because we don't have an answer in the ServiceRegistry for the question since we only know how to answer for entries we have. In this case we can avoid building a set of answers and parsing the known answers in the incoming packet in the majority of cases.
This is a significant speed up since parsing incoming packets is the most expensive thing zeroconf does.
The downside is we might ask a question in the ServiceBrowser that was just asked by another host with the exact same known answer list but this is unlikely as its usually multiple ServiceBrowsers running in the same instance that would do that. We really need to solve #1171 though as thats where the really traffic reduction opportunity is.