首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从套接字读取和下载速度

从套接字读取和下载速度
EN

Stack Overflow用户
提问于 2009-10-08 11:16:47
回答 1查看 2.3K关注 0票数 0

只是为了好玩,我开发了一个下载管理器,我想知道通过网络从套接字读取大量数据(即80或100KB)是否会使下载速度更快,而不是每次循环迭代读取4KB?

(以firefox下载文件为例,平均下载速度为200KBPS )

谢谢,尼尔·塔伊布。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-08 11:24:29

答案是NO

您的网络传输速率(200kbps)表明缓冲4k、8k或200k几乎不会有什么不同。两次读取之间花费的时间太短。无论如何,瓶颈似乎是你的传输速率。

让我们尝试一下stackoverflow 30.9MB mp3 podcast

备注__:这是一个不可靠的黑客攻击,其结果可能会受到许多因素的影响-仅用于演示目的)

代码语言:javascript
复制
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()

我系统中的结果:

代码语言:javascript
复制
All data reading took 137 seconds, transfer rate 230.46 KBPS
Chunked reading took 137 seconds, transfer rate 230.49 KBPS

所以对于我的系统,2兆的连接,文件大小,选择的服务器,我是否使用分块读取没有太大的区别。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1537161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档