«Это зависит», как гласит известная поговорка.
Вы должны определить, что является «лучшим» для вас в «лучшем подходе».Два метода работают правильно, просто разные вещи.
Сначала будет учитываться как сетевое время, обработка удаленного сервера, а затем локальная генерация и анализ DNS-сообщений, включая время, проведенное Python в библиотеке dnspython.
Второй метод учитывает только сеть и время удаленной обработки: если вы ищете response_time
в https://github.com/rthalley/dnspython/blob/master/dns/query.py, вы увидите, что оно вычисляется как разница между временем непосредственно перед отправкой сообщения.(следовательно, после того, как он был собран, поэтому время генерации не будет включено) и сразу после его получения (следовательно, до того, как он будет проанализирован, поэтому время синтаксического анализа не будет включено).
Второй метод может в принципетестируйте производительность удаленного сервера независимо от производительности вашей локальной программы (включая сам Python и библиотеку dnspython) (но будет учитываться сетевое время между вами и удаленным сервером).
Первый метод показывает предполагаемое время, так как включает в себя все время, необходимое в тОн должен что-то сделать, то есть собрать пакет DNS и проанализировать результат, действия, без которых вызывающее приложение ничего не сможет сделать с содержимым DNS.