Почему Python 3 http.client намного быстрее, чем python-запросы?

Сегодня я тестировал разные HTTP-библиотеки Python и понял, чтоhttp.client Библиотека, кажется, работает намного быстрее, чемrequests.

Чтобы проверить это, вы можете запустить следующие два примера кода.

import http.client

conn = http.client.HTTPConnection("localhost", port=8000)
for i in range(1000):
    conn.request("GET", "/")
    r1 = conn.getresponse()
    body = r1.read()
    print(r1.status)

conn.close()

и вот код, делающий то же самое с python-запросами:

import requests

with requests.Session() as session:
    for i in range(1000):
        r = session.get("http://localhost:8000")
        print(r.status_code)

Если я запускаю SimpleHTTPServer:

> python -m http.server

и запустить приведенные выше примеры кода (я использую Python 3.5.2). Я получаю следующие результаты:

http.Client:

0.35user 0.10system 0:00.71elapsed 64%CPU 

питон-запросы:

1.76user 0.10system 0:02.17elapsed 85%CPU 

Правильны ли мои измерения и тесты? Вы тоже можете их воспроизвести? Если да, кто-нибудь знает, что происходит внутриhttp.client что делает это намного быстрее? Почему такая большая разница во времени обработки?

Ответы на вопрос(2)

Ваш ответ на вопрос