getresponse
recv
HTML リクエストのヘッダーを読み込んでいる間、多くの呼び出しを発行します。実際にrecv
は各バイトに対して発行されるため、多くのシステムコールが発生します。どのように最適化できますか?
strace ダンプを使用して Ubuntu マシンで確認しました。
サンプルコード:
conn = httplib.HTTPConnection("www.python.org")
conn.request("HEAD", "/index.html")
r1 = conn.getresponse()
トレースダンプ:
sendto(3, "HEAD /index.html HTTP/1.1\r\nHost:"..., 78, 0, NULL, 0) = 78
recvfrom(3, "H", 1, 0, NULL, NULL) = 1
recvfrom(3, "T", 1, 0, NULL, NULL) = 1
recvfrom(3, "T", 1, 0, NULL, NULL) = 1
recvfrom(3, "P", 1, 0, NULL, NULL) = 1
recvfrom(3, "/", 1, 0, NULL, NULL) = 1
...