Warum ist Python 3 http.client so viel schneller als Python-Anfragen?
ch habe heute verschiedene Python-HTTP-Bibliotheken getestet und festgestellt, dasshttp.client
Bibliothek scheint sehr viel schneller zu sein alsrequests
.
Zum Testen können Sie zwei Codebeispiele ausführen.
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()
und hier ist der Code, der dasselbe mit Python-Anfragen macht:
import requests
with requests.Session() as session:
for i in range(1000):
r = session.get("http://localhost:8000")
print(r.status_code)
Wenn ich SimpleHTTPServer starte:
> python -m http.server
und führen Sie die obigen Codebeispiele aus (ich verwende Python 3.5.2). Ich erhalte folgende Ergebnisse:
http.client:
0.35user 0.10system 0:00.71elapsed 64%CPU
Python-Anfragen:
1.76user 0.10system 0:02.17elapsed 85%CPU
Sind meine Messungen und Tests korrekt? Kannst du sie auch reproduzieren? Wenn ja, weiß jemand, was in @ vor sich gehhttp.client
das macht es so viel schneller? Warum gibt es so große Unterschiede in der Bearbeitungszeit?