Ответ НЕТ .
Ваша скорость передачи в сети (200 Кбит / с) указывает на то, что буферизация 4 КБ, 8 КБ или 200 КБ вряд ли будет иметь значение. Время, проведенное между чтениями, слишком мало. В любом случае, узким местом является ваша скорость передачи.
Давайте попробуем с mp3-подкастом stackoverflow 30,9 МБ :
ПРИМЕЧАНИЕ : Это ненадежный хак, на результаты которого может сильно повлиять
факторов - полезно для демонстрации
только для целей)
import urllib2
import time
def report(start, size, text):
total = time.time() - start
print "%s reading took %d seconds, transfer rate %.2f KBPS" % (
text, total, (size / 1024.0) / total)
start = time.time()
url = ('http://itc.conversationsnetwork.org/audio/download/'
'ITC.SO-Episode69-2009.09.29.mp3')
f = urllib2.urlopen(url)
start = time.time()
data = f.read() # read all data in a single, blocking operation
report(start, len(data), 'All data')
f.close()
f = urllib2.urlopen(url)
start = time.time()
while True:
chunk = f.read(4096) # read a chunk
if not chunk:
break
report(start, len(data), 'Chunked')
f.close()
Результаты в моей системе:
All data reading took 137 seconds, transfer rate 230.46 KBPS
Chunked reading took 137 seconds, transfer rate 230.49 KBPS
Таким образом, для моей системы, 2-мегабитное соединение, размер файла, выбранный сервер, нет особой разницы, использовал я чтение по частям или нет.